Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: непонятка с IP адресами
On 12.06.2011 11:56, ssbury wrote:
Все запросы к www.domain1.ru обрабатываются nginx
в сервере-по-умолчанию, а в не в том сервере,
где указано только server_name domain1.ru;
Соответственно и всю статику nginx будет искать
не в /srv/domain1.ru а в каталоге /srv/domain0.ru
Я понял принцип работы о которым Вы мне
рассказали. Но не могу понять как это
можно исправить. Подскажите пожалуйста
как правильно надо исправить мой
конфиг чтобы исправить такую ошибку. У
меня просто нулевой опыт работы с nginx.
Скорее всего, без чтения документации
у Вас не получится настроить nginx.
http://nginx.org/en/docs/
http://sysoev.ru/nginx/docs/
В частности, "How nginx processes a request"
и "Server names" где есть ответ на Ваш вопрос.
Если есть такая возможность, лучше httpd
оставлять на 80 порту:
Listen 127.0.0.1:80
NameVirtualHost *
<VirtualHost *>
так будет меньше проблем из-за
различных портов у nginx и apache.
К сожалению, насколько я правильно
понимаю, у меня такой возможности нет.
Так как должно быть обращение клиентов
в браузерах в виде www.domain1.ru, без
указания порта, а насколько я понимаю
это только возможно когда nginx
представлен на 80 порту, и насколько я
правильно понимаю одновременно не
могут находится на одном порту и nginx и
apache. Я правильно понимаю?
apache и nginx могут использовать тот же 80 порт,
если они будут его слушать на разных интерфейсах.
apache будет Listen 127.0.0.1:80
а nginx будет listen 11.22.33.44:80;
где 11.22.33.44 - это внешний IP сервера.
Большое количество примеров в интернете,
где nginx случает 80 порт, а apache слушает
8080 порт вызваны ограничениями операционной
системы FreeBSD при использовании jails.
Операционная система Linux этих ограничений
не имеет и поэтому в Linux связку nginx <-> apache
можно настроить способом, который будет вызывать меньше проблем.
Например, некоторые скрипты на php видят что запрос к ним пришёл
на порт 8080 и формируют url сайта с явным указанием порта 8080.
Если и apache и nginx будут работать на 80 порту - этой проблемы
не будет и везде будет нормальный url.
Никаких преимуществ указывать Listen 127.0.0.1:8080 в конфиге апача
вместо директивы Listen 127.0.0.1:80 нет, это только дополнительный
потенциальный источник проблем и глюков в работе через nginx+apache
proxy_pass http://127.0.0.1:8080;
в редких и сперцифических случаях uri необходимо
передавать на backend в необработанном виде.
более безопасный и надежный вариант:
proxy_pass http://127.0.0.1/;
А как тут правильно передать в
необработанном виде если порт все таки
8080?
Ответ на этот Ваш вопрос есть в документации
к директиве proxy_pass на сайте http://sysoev.ru/
Пересказывать документацию - это занятие неблагодарное.
Заранее спасибо,
Александр
P.S. Почему получаются редиректы на цифровой IP адрес
вместо имени сайта - точно установить причину Вы сможете
быстрее всего с помощью отладочных логов nginx и apache.
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|