Re: [proposal] SERVER_NAME в fastcgi_params

Илья Шипицин chipitsine на gmail.com
Пн Мар 13 11:09:26 UTC 2023


и да и нет.
в конфиге сервера, приведенным топикстартером server_name отсутствует, а
запрос смаршрутизировался, потому что указан default_server в listen.

а как интерпретировать MUST в случае отсутствующего server_name RFC не
говорит ))

пн, 13 мар. 2023 г. в 11:53, Maksim Kulik <kulmaks на gmail.com>:

> В RFC на эту тему есть вполне четкое мнение:
>
>    The SERVER_NAME variable MUST be set to the name of the server host
>    to which the client request is directed.
>
> Там должно быть имя сервера, который обслуживает этот запрос. Из
> документации nginx: Первое имя становится основным именем сервера. Всё
> вполне однозначно при внимательном прочтении.
>
> пн, 13 мар. 2023 г. в 13:50, Илья Шипицин <chipitsine на gmail.com>:
>
>>
>>
>> пн, 13 мар. 2023 г. в 11:12, Nikolay Shaplov <dhyan на nataraj.su>:
>>
>>> В письме от понедельник, 13 марта 2023 г. 12:40:14 MSK пользователь Илья
>>> Шипицин написал:
>>> > > A deployed server can have more than one possible value for this
>>> > > variable, where several HTTP virtual hosts share the same IP address.
>>> > > In that case, the server would use the contents of the request's Host
>>> > > header field to select the correct virtual host.
>>> > >
>>> > > Мой вольный перевод "В случае если есть несколько кандидатов на
>>> заполнение
>>> > > переменной окружения SERVER_NAME, например несколько виртальных
>>> хостов
>>> > > использует один и тот же IP-адрес, серверу следует изучить содержимое
>>> > > заголовка Host пришедшего в http-запросе и использовать его значение
>>> для
>>> > > того
>>> > > чтобы выбрать корректный virtual host"
>>> >
>>> > все верно. но это про другое же речь.
>>> > в цитируемом фрагменте речь про то, что если у вас несколько
>>> виртуальных
>>> > хостов, но выбрать правильный можно и нужно исходя из Host.
>>> >
>>> > но если по факту вы попали в дефолт, то выбор, описанный выше, вы уже
>>> > сделали.
>>>
>>> хорошо, давайте совсем на примерах.
>>> В конфиге написано:
>>>
>>> server_name h1.example.com h2.example.com h3.example.com;
>>> include        fastcgi_params;
>>> fastcgi_pass  unix:/var/run/my-fastcgi;
>>>
>>> Я браузером захожу на h2.example.com
>>>
>>> Что должно оказаться в SERVER_NAME для cgi-скрипта который будет
>>> отвечать на
>>> этот запрос?
>>>
>>
>> процитированный Вами фрагмент RFC говорит, что, если у вас есть несколько
>> блоков server { ... }, то
>> выбрать надо данный конкретный, потому что в server_name у него
>> присутствует h2.example.com
>>
>> а что писать в SERVER_NAME для cgi-скрипта - тут нет четкого мнения,
>> скажем так, могут быть варианты.
>>
>>
>>>
>>> --
>>> Nikolay Shaplov aka Nataraj
>>> Fuzzing Engineer at Postgres Professional
>>> Matrix IM: @dhyan:nataraj.su
>>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> https://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20230313/402e6e87/attachment-0001.htm>


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