|
|
Сайтостроение В этой категории темы о создании сайтов, их раскрутке, скриптах и т.п |
|
Опции темы | Поиск в этой теме |
27.05.2012, 19:19 Вверх | #1 | |||
Коварный тип
|
Настройка сервера в режиме Apache + Nginx
Настройка сервера в режиме Apache + Nginx
Наконец то получился 100% рабочий мануал по настройке сервера в таком режиме, но есть загвоздки о которых напишу в конце. Итак, в качестве ОС сервера у меня всегда ubuntu 10.04, я к ней безумно привык и меня она устраивает. Ставлю всегда в минимальной версии. В качестве домена будет выступать serberg.ru , сам тестовый сервер пока что имеет IP 159.253.18.138. Начнемс. Устанавливаем все что может понадобится, сервер у меня от части стриминговый, так что я ставлю некоторые примочки: sudo apt-get update apt-get install mc apt-get install nano apt-get install gcc++ apt-get install libpcre3 libpcre3-dev apt-get install openssl apt-get install libssl-dev Итак, приступим к установке Nginx: Жирным выделяю команды в консоли - через тире комментарий к ней cd /tmp - переходим в папку tmp wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz - качаем Nginx пакет tar xvf nginx-0.8.54.tar.gz - распаковываем его cd nginx-0.8.54 - переходим в папку Конфигурируем и устанавливаем: ./configure make make install Обычно ошибок не возникает. Запускаем nginx командой: sudo /usr/local/nginx/sbin/nginx Переходим по адресу http://159.253.18.138/ и видим что Nginx заработал по соответствующему приветственному окну. Остановим пока что nginx убив процесс. killall -KILL nginx Стоит отметить что установленный Nginx базируется в папке /usr/local/nginx/ и конфигурационные файлы лежат в папке /usr/local/nginx/conf. Ок. Пока что Nginx оставим и приступим к настройке Apach + PHP + PhpMyAdmin sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec - ставим апач с плюшками После перехожу по адресу в браузере http://159.253.18.138/ и вижу что теперь меня привествует апач "It works!". Это хорошо, но позже исправим. Устанавливаем PHP модулями командой: sudo apt-get install php5 php-pear libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-auth-mysql php5-mysql libapache2-mod-python php5-dev php5-cgi php5-mcrypt php5-gd php5-cli php5-common php5-curl php5-idn php5-imagick php5-imap php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl libapache2-mod-evasive Установка дополнительных пакетов для gd: sudo apt-get install libpng12-dev libjpeg62-dev libxpm-dev libfreetype6-dev Ставим мод паф для взаимодействия и правильной передачи IP между нгинксом и апачем: sudo apt-get install libapache2-mod-rpaf Подключение модулей: sudo a2enmod php5 sudo a2enmod mod-evasive sudo a2enmod ssl sudo a2enmod rewrite sudo a2enmod suexec sudo a2enmod include a2enmod rpaf До кучи можно перезапустить апач: /etc/init.d/apache2 force-reload Редактируем конфиг хостов: sudo nano /etc/apache2/sites-available/default Изменяем параметр: AllowOverride None на AllowOverride All Сохраняем нажав Ctrl + O и закрываем нано Ctrl + X. Перезапускаем апач: sudo service apache2 restart Установка MySQL сервера: sudo apt-get install mysql-server В процессе установки, будет запрошен ввод пароля для root MySql сервера. Введите его дважды. Установка phpMyAdmin: sudo apt-get install phpmyadmin Во время установки у Вас спросят какой тип сервер установлен apache2 или lighttpd, выбираем пробелом apache2 и жмем Enter. Создаем папки для домена: sudo mkdir /usr/local/nginx/serberg.ru sudo mkdir /usr/local/nginx/serberg.ru/www sudo mkdir /usr/local/nginx/serberg.ru/log sudo mkdir /usr/local/nginx/serberg.ru/sess sudo mkdir /usr/local/nginx/serberg.ru/tmp Создание конфигурационного файла виртуального хоста нашего сайта: sudo nano /etc/apache2/sites-available/serberg.ru Со следующим содержимым: ServerName serberg.ru ServerAlias www.serberg.ru DocumentRoot /usr/local/nginx/serberg.ru/www ServerAdmin admin@serberg.ru ErrorLog /usr/local/nginx/serberg.ru/log/apache_error.log CustomLog /usr/local/nginx/serberg.ru/log/apache_access.log combined <Directory /usr/local/nginx/serberg.ru/www> Options FollowSymLinks Options -Indexes AllowOverride All Order allow,deny Allow from all </Directory> php_admin_value upload_tmp_dir /usr/local/nginx/serberg.ru/tmp php_admin_value error_log /usr/local/nginx/serberg.ru/log/php.log php_admin_value session.save_path /usr/local/nginx/serberg.ru/sess </VirtualHost> nano /etc/apache2/ports.conf Меняем 80 на 8080, будет похоже на это: Listen 8080 <IfModule mod_ssl.c> # SSL name based virtual hosts are not yet supported, therefore no # NameVirtualHost statement here Listen 443 </IfModule> Активируем сайт на сервере sudo a2ensite serberg.ru Внесем имя сайта в список хостов сервера: sudo nano /etc/hosts Найдем строчку 127.0.0.1 localhost и допишем в неё через пробел: serberg.ru www.serberg.ru Получится так: Код:
127.0.0.1 localhost serberg.ru www.serberg.ru Чтобы Apache не ругался, внесем строчку в один из конфигурационных файлов Apache (начиная с версии 11.04 не требуется). sudo nano /etc/apache2/httpd.conf Добавим следующее содержимое: ServerName localhost Сохраняем нажав Ctrl + O и закрываем нано Ctrl + X. sudo service apache2 restart - перезапустим апач Для понимания, в папке настрое апача есть папки: sites-available - все доступные виртуальных хосты sites-enabled - включаемые вебсервером Это надо понимать. Отключаем сайт по умолчанию: sudo a2dissite default Итак, теперь конфигурируем nginx в режиме прокси для апача. nano /usr/local/nginx/conf/nginx.conf По умолчанию он выглядит так: PHP код:
PHP код:
PHP код:
Тут я файлы типов js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg отдаю через nginx напрямую, остальное сую в апач. /etc/init.d/apache2 stop - Вырубаю апач killall -KILL nginx - Вырубаю nginx sudo /usr/local/nginx/sbin/nginx - запуск nginx /etc/init.d/apache2 start - запуск apache Теперь при обращении на serberg.ru должно быть написано что апач приветствует Вас. Итак, для теста поставил DLE 9.5, включил кэширование самого движка в настройках получаю на этом сервере общее время генерирования страницы:
Теперь меня мучает проблемка, если обратиться на сервер через адрес: http://serberg.ru:8080/ То апач его обработает без nginx, можно как то редиректнуть такой запрос назад на 80 порт ? |
|||
27.05.2012, 19:22 Вверх | #2 | |||
Коварный тип
|
Еще одна проблема нарисовалась. При обращении по IP http://159.253.18.138/ грузится сам сайт. Как это можно убрать или редиректнуть ?
|
|||