Настройка Nginx как фронтенд Apache
05.10.2011В предыдущей статье я описывал как настроить свой хостинг с панелью Ispconfig3, сегодня я расскажу как настроить Nginx, который будет обрабатывать статику вместо Apache.
Внимательный читатель спрость, зачем нам это нужно? Ответ прост, Nginx потребляет меньше ресурсов и работает быстрее Apache.
Что нужно.
- Сервер на ubuntu/debian/etc
- Доступ по ssh
- 10 минут времени
Настройка Apache
Открываем порты Apache:
nano /etc/apache2/ports.conf
И ищем строки:
NameVirtualHost *:80 Listen 80
Меням на порт 82:
NameVirtualHost *:82 Listen 82
Так же меняем порт для корневого хоста:
nano /etc/apache2/sites-available/default
VirtualHost *:82> ServerAdmin webmaster@localhost</pre> DocumentRoot /var/www
Перезапускаем Apache:
/etc/init.d/apache2 restart
И проверяем на каком порте у нас apache:
netstat -tunap | grep apache2
Должны увидить, что-то вроде этого:
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 5851/apache2
Если все правельно, то перейдем к IspConfig, подправим шаблоны панели для apache, но на всякий случай сохраним старые конфиги:
cd /usr/local/ispconfig/server/ cp conf/apache_ispconfig.conf.master conf-custom/ cp conf/vhost.conf.master conf-custom/
И отредактируем файлы:
nano /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
В конце файла:
<tmpl_loop name="ip_adresses"> NameVirtualHost {tmpl_var name="ip_address"}:80 NameVirtualHost {tmpl_var name="ip_address"}:443 </tmpl_loop>
В строке заменяем на 82:
NameVirtualHost {tmpl_var name="ip_address"}:82
Открываем второй файл файл:
nano /usr/local/ispconfig/server/conf-custom/vhost.conf.master
Почти в самом начале файла ищем строку:
<VirtualHost <tmpl_var name='ip_address'>:80>
И меняем на:
<VirtualHost <tmpl_var name='ip_address'>:82>
Теперь установим модуль для apache — ibapache2-mod-rpaf:
apt-get install libapache2-mod-rpaf
И редактируем конфиг:
nano /etc/apache2/apache2.conf
Где-то , например, в конце добавляем:
RPAFsethostname On RPAFproxy_ips 127.0.0.1
На этом с apache закончили и переходим к Nginx
Установка и настройка Nginx.
Устанавливаем Nginx:
apt-get install nginx
И после установки удаляем стандартный virtualhost:
rm /etc/nginx/sites-available/default
Открываем наш хост:
nano /etc/nginx/sites-available/default
Вписываем слудующие:
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; } }
Перезапускаем наши веб сервера:
service apache2 restart service nginx restart
На этом настройка завершена, теперь можно наслаждаться возросшей скоростью =)
Статья была написано по материалу блога Andrey Kozhokaru и сайта мини-сервер.
Привет, орошая статья, но у меня не получается, В общем у меня адсл модем к которому в панеьке я присовил имя geniewgen.dyndns.org и nnov.dyndns.org и перенаправил с него на ip адресс сервера 192.168.1.222 как мне конфиг изменить чтобы при переходе на эти домены вылезали разные сайты?
в апаче виртуал хосты просто добавляются
a chto esli u menya 2 servera. hochu chtob na odnom stoyal apach . na drugom nginx. kakie tam budut nastroiki?
хм я не очень понял проблемы=)
a kak svyazat dva komputera? hochu na odnom front-end nginx a na drugom apache
можно через прокси например, но опять же задачу опишите подробней, зачем вам два сервера для оброботки веба ?
u menya dva servera. na odnom hochu postavit nginx kotoryi budet frontend’om na vtorom apache backend. kak ih svyazat? hochu chtob oba obslujivali odin sayt.
на одном апач, на втором nginx , вместо RPAFproxy_ips 127.0.0.1, адрес сервера, но надо потестить, я,пожалуй, из извращений только на облоко тестил
a chto po vawemu efektivnee? 🙂 u menya server stoit na nginx+apache. i seychas maximum vyderjivaet +-1000 users online. vot kupil vtoroi server i neznau kakim obrazom svyazat ih.
что же вас за канал/сервер что выдерживает всего 1к пользователей?
Наиболее оптимальный вариант купить один сервер помощнее, поставить на нем nginx+apache или просто nginx, если все равно большая нагрузка , то уже копать код сайта
У меня апач забирает 16гб оперативы, при <1000 онлайна. Канал 100мбит…
Поможет данный мануал мне избежать потерь панями?
http://tools.pingdom.com/fpt/ — выдаёт 28сек, будет быстрей?
хо хо хо сервер нормально настройте=))) при 10к онлайн, апач да может жрать 16 гигов, но никак не при 1к. И да должно помочь
В тексте делается резервная копия файлов шаблона, а потом редактируется не нужный файл, а резервная копия. Поэтому порт создаётся не верно.
в этом как бы суть, мы копируем в кастом и редактируем, хотя в последней версии ispconfig 3.5.3 поменялся синтаксис, там порт нужно прописывать не много по другому