Данная статья является тестовым материалом, для идеальных серверов под управлением операционных систем Ubunu и Debian выполнив который Вы установите Nginx. Nginx является свободным и открытым исходным кодом, служащий для повышения производительности HTTP-сервера. Nginx известен своей стабильностью, богатым набором функций, простой конфигурации, и низкое потребление ресурсов. В этом материале показано, как можно установить Nginx на Ubuntu server 11.04 и Debian 6.0 таким образом, что бы каждый созданный хост в панели управлнения хостингом ISPConfig 3 работал в Nginx, а не в Apache. Напоминаю, что этот материал относиться к категории готовый сервер, поэтому выполненный сервер по этому материалу, а так же обсуждение и информацию по тестированию Вы можите найти на нашем форуме в теме Ubuntu/Debian c nginx + скачать.
Nginx хостинг
В данной статье я использую сервера под управлением Ubuntu server 11.04 который Вы можете установить по учебнику описаному ранее Идеальный сервер - Ubuntu 11.04 [ISPConfig 3], а так же, может быть выполненная под Идеальный сервер - Debian 6.0 [ISPConfig 3]. Я выполняю все шаги в этом учебнике с привилегиями супер пользователя, для этого убедитесь, что Вы вошли в систему с правами root:
|
Установка nginx ubuntu
Установленный Nginx получает все внешние хосты, а прокси Apache будет работать в фоне на другом порту. Таким образом, Nginx будет обрабатывать статические файлы, а PHP будет оставлено на Apache. Вы также можете оставить все домены Nginx.
Настройка Apache
Для того что бы Apache работал на порту 82, отредактируем конфигурационный файл:
|
Я предполагаю, что Ваш виртуальный хост вида *:80 вместо IP:80:
[...] NameVirtualHost *:82 Listen 82 [...]
Аналогично поменяем порт для корневого хоста (хост сервера по умолчанию открываемый по IP адресу сервера):
|
<VirtualHost *:82> ServerAdmin webmaster@localhost DocumentRoot /var/www [...]
Перезапустите Apache и используя NetStat проверим, работает ли он на порту 82:
|
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 7630/apache2
Теперь Вы должны изменить ISPConfig шаблоны Apache. Скопируйте их в вашу conf-custom директорию:
|
Откройте два файла и изменить :80 на :82. Чтобы быть уверенным запустить GREP команду и убедитесь:
|
Теперь проверим:
|
/usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master:NameVirtualHost {tmpl_var name="ip_address"}:82 /usr/local/ispconfig/server/conf-custom/vhost.conf.master: :82>
Вы увидите как все запросы проходят с локального хоста (127.0.0.1). Чтобы увидеть пользователи с реальных IP адресов, Вам придется установить libapache2-mod-rpaf:
|
Добавьте следующее в /etc/apache2/apache2.conf:
|
RPAFsethostname On RPAFproxy_ips 127.0.0.1 YOU_IP_ADDRESS
Установка и настройка Nginx
Включим lenny-backports хранилище, Вы найдете инструкции на backports.org.
|
Удалить виртуальный хост по умолчанию:
|
Откройте файл:
|
Добавьте следующее содержимое в файл:
server { listen 80 default; server_name _; server_name_in_redirect off; default_type text/html; #### Non WWW host goes to $sup variable #### set $sup $host; if ($host ~* ^(www\.)(.+)) { #if WWW? set $sup $2; # cut WWW and write it into $sup } access_log /var/log/ispconfig/httpd/$host/access.log; location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|html|htm|mp3)$ { root /var/www/$sup/web; access_log off; expires 30d; } location / { root /var/www/$sup/web; index index.html index.htm index.php; access_log off; #proxy_pass http://$host:82; proxy_pass http://127.0.0.1:82; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Перезапускаем Apache и Nginx:
|
Вот и все. Nginx будет обслуживать все ваши статические файлы, такие как изображения даже HTML-файлы, а PHP будут направлены в Apache.
Хотелось бы выразить благодарность за проделанную работу Andrey Kozhokaru, которые поделился своими трудом ISPconfig + nginx: WWW and no-WWW в своем блоге www.amgeekblog.com. Напоминаю, что этот материал относиться к категории готовый сервер, поэтому выполненный сервер по этому материалу, а так же обсуждение и информацию по тестированию Вы можите найти на нашем форуме в теме Ubuntu/Debian c nginx + скачать.