webew
Войти » Регистрация
 
Linux

Правильное указание servername Настройка Nginx как Frontend к Web-серверу Apache?

18 марта 2015, 0:50
Автор: tehnology-online
Смотрю инструкции по настройке. В некоторых

listen 80;
server_name .site.ru

в других

server_name localhost

в третьих

server_name _

А как правильно то и почему?
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

tehnology-online

Если правильно указывать название сайта, то для чего нужны остальные варианты, тот же localhost и как указать сразу все сайты
18.03.2015, 01:13
Ответить

paulus

Эта директива полезна в том случае, когда nginx обслуживает более одного сайта на одном адресе. Тогда Вы сможете указать различные конфигурации (например, различные каталоги) для таких сайтов. В случае с одним сайтом в server_name можно написать что угодно — это значение будет выбрано значением по умолчанию и эта конфигурация будет подходить независимо от имени.

http://nginx.org/ru/docs/http/server_names.html
18.03.2015, 01:37
Ответить
NO USERPIC

tehnology-online


http://nginx.org/ru/docs/http/request_processing.html

Вот я почитал, и, учитывая, server_name указывает инструкцию для обработки nginx, пришел все таки к выводу, что должен быть указан localhost так как задача nginx освободить сервер apache. А apache должен видимо вернуть localhost. Или я что-то не правильно понял?
18.03.2015, 01:51
Ответить
NO USERPIC

tehnology-online

С другой стороны учитывая что в инструкции написано

location / {
proxy_pass http://127.0.0.1:81/;

То видимо все-таки запрос идет на сервер apache, а значит в server_name должно быть указан название сайта. Если так, то как указать server_name для всех сайтов. И как же оно все таки происходит на самом деле?
18.03.2015, 02:08
Ответить
NO USERPIC

tehnology-online

Apache мне нужен, потому что я пишу скрипты не только для себя. В общем-то я и читаю документацию, и на основе документации и задал здесь вопросы. Все внешние запросы получается отдает и принимает nginx. Т.е. он принимает запрос смотрит
listen 80;
server_name .site.ru,
видит что запрос пришел с такого-то сайта. Значит там вместо .site.ru должна стоять какая-то универсальная переменная передает это дело
location / {
proxy_pass http://127.0.0.1:81/;
Которая перенаправляет запрос http://127.0.0.1:81/, т.е. получается серверу apache, а сервер обрабатывает отдает Nginx и освобождается, а nginx уже отдает готовые страницы клиенту. Но с другой стороны возможно
server_name localhost
как раз и пишут для того, чтобы nginx принял запросы от apache, обработал их и отправил клиенту.
В третьих вполне возможно, что
server_name localhost
server_name _
Служат как раз для того, чтобы как написано в документации
"это просто одно из множества некорректных доменных имён, которые никогда не пересекутся ни с одним из реальных имён"
Не ясно для чего может вообще понадобиться писать подобный server_name, если он никогда не пересечется в реальности то и обрабатывать нечего. Другое дело, что например возможно что самая последняя инструкция server_name, вне зависимости от имени обрабатывается в обязательном порядке, и там уже без разницы что указывать.
А как оно на самом деле я надеялся, что мне объяснят здесь. И надеюсь не на двухсмысленных ответ навроде да или нет

18.03.2015, 14:43
Ответить

paulus

Краткий ответ всё тот же — для одного сайта абсолютно неважно, что Вы туда напишете.

Полный ответ — посмотрите на спецификацию протокола HTTP (например, http://www.lib.ru/WEBMASTER/rfc2068/). Там описывается заголовок Host, который позволяет отличать виртуальные имена на одном адресе. В случае, когда nginx обслуживает более одного имени, параметр влияет — он будет сравниваться с заголовком Host по правилам, которые описаны в документации nginx.
18.03.2015, 19:47
Ответить

paulus

Кажется, там не всё переведено, в оригинале: https://www.ietf.org/rfc/rfc2068.txt, искать секцию «14.23 Host».
18.03.2015, 19:52
Ответить
NO USERPIC

tehnology-online

Спасибо за ответы.
20.03.2015, 03:05
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100