Re: Apache nginx доступ по ип и домену

Pavel V. pavel2000 at ngs.ru
Fri Dec 14 04:26:57 UTC 2012


Здравствуйте, UserQ.

Вы писали 14 декабря 2012 г., 3:02:09:

> В общем задача такого плана стоит подружить nginx and Apache. А именно
> необходимо заставить работать корректно IP и домены. Сейчас проблема состоит
> в том что когда подключается IP домены не хотят себя корректно вести, те они
> только доступны как указано в конфиге на ип.


1) Разделять конфиги подобным образом следует только тогда, если требуется выводить разные сайты на
запросы с указанием сконфигурированного домена и без указания. Вроде как ваш случай.

2) Не надо использовать listen без указания IP в конфиге Nginx и VirtualHost без указания IP в
конфиге Apache.
2.1) Я предпочитаю на апаче использовать 80 порт и адреса 127.0.0.0/8 сети. Каждому реальному IP
соответствует свой IP из 127.0.0.0/8.
2.2) Если используются хитровывернутые скрипты, которые будут пытаться из апача брать его IP/порт,
которые в моем случае получат "неожиданно" - IP 127.0.0.х а в вашем случае Port 81, то идеального
варианта можно добиться так: апачем слушать реальный IP порт 80, а nginx-ом реальный IP порт 81,
сделать перенаправление трафика к 80 порту на 81 через  iptables -t nat -j DNAT

Общая суть пункта: Каждому отдельному набору IP+port Nginx требуется сопоставить отдельный IP+port Apache.

3) Не забывайте читать документацию: http://nginx.org/ru/docs/http/ngx_http_core_module.html#variables

   $host -  поле “Host” заголовка запроса, или имя сервера, соответствующего запросу, если этого поля нет.
   $http_имя -  произвольное поле заголовка запроса; последняя часть имени переменной соответствует
   имени поля, приведённому к нижнему регистру, с заменой символов тире на символы подчёркивания
   $http_host - доступная переменная.

4) Не копируйте чужие конфиги, в них есть директивы, которые могут сыграть с вами злые шутки.



-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



Подробная информация о списке рассылки nginx-ru