Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maksim Kulik
Все же понимают, что отсутствующий server_name - это просто способ
"упрощения" минимально необходимого конфига и на самом деле имя сервера все
равно присутствует (дефолтное значение - пустая строка). Что именно попадет
в этом случае в SERVER_NAME - не совсем понятно. Но исходя из всей
вышеописанной логики - туда должна попасть пустая строка.

пн, 13 мар. 2023 г. в 14:09, Илья Шипицин :

> и да и нет.
> в конфиге сервера, приведенным топикстартером server_name отсутствует, а
> запрос смаршрутизировался, потому что указан default_server в listen.
>
> а как интерпретировать MUST в случае отсутствующего server_name RFC не
> говорит ))
>
> пн, 13 мар. 2023 г. в 11:53, Maksim Kulik :
>
>> В 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, Илья Шипицин :
>>
>>>
>>>
>>> пн, 13 мар. 2023 г. в 11:12, Nikolay Shaplov :
>>>
 В письме от понедельник, 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;
 includefastcgi_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
>>
> ___
> 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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Илья Шипицин
и да и нет.
в конфиге сервера, приведенным топикстартером server_name отсутствует, а
запрос смаршрутизировался, потому что указан default_server в listen.

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

пн, 13 мар. 2023 г. в 11:53, Maksim Kulik :

> В 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, Илья Шипицин :
>
>>
>>
>> пн, 13 мар. 2023 г. в 11:12, Nikolay Shaplov :
>>
>>> В письме от понедельник, 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;
>>> includefastcgi_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
>
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maksim Kulik
В 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, Илья Шипицин :

>
>
> пн, 13 мар. 2023 г. в 11:12, Nikolay Shaplov :
>
>> В письме от понедельник, 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;
>> includefastcgi_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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Илья Шипицин
пн, 13 мар. 2023 г. в 11:12, Nikolay Shaplov :

> В письме от понедельник, 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;
> includefastcgi_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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maksim Kulik
Да, т.к. name of the server - это первое имя в директиве server_name. Выше
в переписке уже писали, что это упомянуто в документации -
http://nginx.org/ru/docs/http/ngx_http_core_module.html#server_name
Кроме этого, Максим писал про аналоги в веб-сервере Apache - там есть
ServerName, в котором описывается только одно имя и ServerAlias, которых
может быть много. В приведенном вами примере ServerName - h1.example.com,
остальное - алиасы. А алиас никогда не попадает в переменную SERVER_NAME.

пн, 13 мар. 2023 г. в 13:21, Nikolay Shaplov :

> В письме от понедельник, 13 марта 2023 г. 13:16:25 MSK пользователь Maksim
> Kulik написал:
> > h1.example.com - это и есть имя сервера, остальное - алиасы.
>
> Как должен выглядеть конфиг, для случая который описан в RFC
>
>"A deployed server can have more than one possible value for this
>variable, where several HTTP virtual hosts share the same IP address"
> ?
>
> Соответсвует ли упомянутое вам имя сервера формулировке "name of the
> server
> host to which the client request is directed." ?
>
> >
> > пн, 13 мар. 2023 г. в 13:12, Nikolay Shaplov :
> >
> >
> > > В письме от понедельник, 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;
> > > includefastcgi_params;
> > > fastcgi_pass  unix:/var/run/my-fastcgi;
> > >
> > >
> > >
> > > Я браузером захожу на 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
> > >
> > >
>
>
> --
> 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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 13 марта 2023 г. 13:16:25 MSK пользователь Maksim 
Kulik написал:
> h1.example.com - это и есть имя сервера, остальное - алиасы.

Как должен выглядеть конфиг, для случая который описан в RFC

   "A deployed server can have more than one possible value for this
   variable, where several HTTP virtual hosts share the same IP address"
?

Соответсвует ли упомянутое вам имя сервера формулировке "name of the server 
host to which the client request is directed." ?

> 
> пн, 13 мар. 2023 г. в 13:12, Nikolay Shaplov :
> 
> 
> > В письме от понедельник, 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;
> > includefastcgi_params;
> > fastcgi_pass  unix:/var/run/my-fastcgi;
> >
> >
> >
> > Я браузером захожу на 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
> >
> >


-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maksim Kulik
h1.example.com - это и есть имя сервера, остальное - алиасы.

пн, 13 мар. 2023 г. в 13:12, Nikolay Shaplov :

> В письме от понедельник, 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;
> includefastcgi_params;
> fastcgi_pass  unix:/var/run/my-fastcgi;
>
> Я браузером захожу на 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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 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;
includefastcgi_params;
fastcgi_pass  unix:/var/run/my-fastcgi;

Я браузером захожу на h2.example.com

Что должно оказаться в SERVER_NAME для cgi-скрипта который будет отвечать на 
этот запрос?

-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Илья Шипицин
пн, 13 мар. 2023 г. в 10:09, Nikolay Shaplov :

> В письме от понедельник, 13 марта 2023 г. 10:57:09 MSK пользователь Maksim
> Kulik написал:
> > А где написано, что сервер ДОЛЖЕН его ИСПОЛЬЗОВАТЬ дальше? Он должен
> > использовать это имя для ВЫБОРА виртуал-хоста. Насколько я вижу, в RFC не
> > описано дальнейшее поведение сервера при наличии более одного
> SERVER_NAME в
> > виртуал-хосте.
>
> Цитирую:
>
>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.

но если по факту вы попали в дефолт, то выбор, описанный выше, вы уже
сделали.


>
> >
> > пн, 13 мар. 2023 г. в 10:50, Nikolay Shaplov :
> >
> >
> > >
> > >
> > > Правильно. И то имя которое совпало должно попасть в переменную
> окружения
> > > SERVER_NAME
> > >
> > >
> > >
> > > Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все
> > > написано), из соображений общий логики, почему в SERVER_NAME попадает
> > > первый
> > > из алиасов, а не тот на который пришли??? В этом нет вообще никакой
> > > логики.
> >
> > >
> > >
> > >
> > >
> > > --
> > > Nikolay Shaplov aka Nataraj
> > > Fuzzing Engineer at Postgres Professional
> > > Matrix IM: @dhyan:nataraj.su
> > >
> > >
>
>
> --
> 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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 13 марта 2023 г. 10:57:09 MSK пользователь Maksim 
Kulik написал:
> А где написано, что сервер ДОЛЖЕН его ИСПОЛЬЗОВАТЬ дальше? Он должен
> использовать это имя для ВЫБОРА виртуал-хоста. Насколько я вижу, в RFC не
> описано дальнейшее поведение сервера при наличии более одного SERVER_NAME в
> виртуал-хосте.

Цитирую:

   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"

>
> пн, 13 мар. 2023 г. в 10:50, Nikolay Shaplov :
>
>
> >
> >
> > Правильно. И то имя которое совпало должно попасть в переменную окружения
> > SERVER_NAME
> >
> >
> >
> > Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все
> > написано), из соображений общий логики, почему в SERVER_NAME попадает
> > первый
> > из алиасов, а не тот на который пришли??? В этом нет вообще никакой
> > логики.
>
> >
> >
> >
> >
> > --
> > Nikolay Shaplov aka Nataraj
> > Fuzzing Engineer at Postgres Professional
> > Matrix IM: @dhyan:nataraj.su
> >
> >


-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su

signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maxim Dounin
Hello!

On Mon, Mar 13, 2023 at 10:50:37AM +0300, Nikolay Shaplov wrote:

> В письме от понедельник, 13 марта 2023 г. 10:46:51 MSK пользователь Maksim 
> Kulik написал:
> > Мне кажется, что в RFC речь идет скорее про разные блоки server {}, т.к.
> > речь явно про several virtual hosts, а не про several server names. То есть
> > веб-сервер вполне корректно по RFC выбирает блок server {} по имени хоста и
> > используется главное имя этого блока далее в работе.
> > Вы в своем примере имеете один виртуал хост и N имен (алиасов, если хотите)
> > в нем, где N может быть бесконечным в случае дефолтного хоста. Ваш сервер и
> > выбирает этот самый хост по имени, которое видит в заголовке.
> Правильно. И то имя которое совпало должно попасть в переменную окружения 
> SERVER_NAME
> 
> Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все 
> написано), из соображений общий логики, почему в SERVER_NAME попадает первый 
> из алиасов, а не тот на который пришли??? В этом нет вообще никакой логики.

Потому что первое из имён, указанных в директиве server_name - 
каноническое.  Это, кстати, явно описано в документации 
(https://nginx.org/ru/docs/http/ngx_http_core_module.html#server_name):

: Первое имя становится основным именем сервера.

Разделение на каноническое имя и алиасы - оно ещё из Apache, где 
имя сервера указывается отдельно, директивой ServerName, а алиасы, 
соответственно, директивой ServerAlias.  В nginx'е всех отличий в 
этом плане - алиасы задаются с помощью той же директивы 
server_name.

Выбор же между "использовать каноническое имя" или "использовать имя, 
на которое пришли" - это вопрос, в первую очередь, желаемого 
поведения.

Скажем, мы можем хотеть во всех перенаправлениях / ссылках / 
текстах использовать каноническое имя, чтобы пользователь получал 
одно и то же, независимо от того, по какому конкретно имени он 
пришёл.  Например, это может быть важно, чтобы тексты 
сгенерированных страниц всегда совпадали, и их можно было 
кэшировать для всех пользователей.  Или просто из эстетических 
соображений.

Или наоборот, можем хотеть, чтобы пользователю всегда возвращались 
ссылки ровно с тем именем, на которое он пришёл, потому что для 
разных пользователей сайт может быть доступен под разными именами.

Что именно нужно в конкретной конфигурации - это решение того, кто 
пишет конфигурацию nginx'а.  В некоторых случаях оно явно вынесено 
в отдельные директивы (см. упоминавшуюся ранее 
server_name_in_redirect), в случае же CGI-like бэкендов оно 
делается неявно с помощью задания переменной SERVER_NAME.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Evgeniy Berdnikov
On Mon, Mar 13, 2023 at 11:37:47AM +0300, Evgeniy Berdnikov wrote:
> On Mon, Mar 13, 2023 at 10:50:37AM +0300, Nikolay Shaplov wrote:
> > В письме от понедельник, 13 марта 2023 г. 10:46:51 MSK пользователь Maksim 
> > Kulik написал:
> > > Мне кажется, что в RFC речь идет скорее про разные блоки server {}, т.к.
> > > речь явно про several virtual hosts, а не про several server names. То 
> > > есть
> > > веб-сервер вполне корректно по RFC выбирает блок server {} по имени хоста 
> > > и
> > > используется главное имя этого блока далее в работе.
> > > Вы в своем примере имеете один виртуал хост и N имен (алиасов, если 
> > > хотите)
> > > в нем, где N может быть бесконечным в случае дефолтного хоста. Ваш сервер 
> > > и
> > > выбирает этот самый хост по имени, которое видит в заголовке.
> > Правильно. И то имя которое совпало должно попасть в переменную окружения 
> > SERVER_NAME
> > 
> > Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все 
> > написано), из соображений общий логики, почему в SERVER_NAME попадает 
> > первый 
> > из алиасов, а не тот на который пришли??? В этом нет вообще никакой логики.
> 
>  +1
> 
>  И нужно отметить, что RFC про протокол взаимодействия, он не диктует как
>  писать конфиги, поэтому там ничего нет "про разные блоки server {}".
>  RFC связывает параметры запроса HTTP с параметрами CGI.

 Однако, нет, перечитав ещё несколько раз п.4.1.14 rfc3875, беру свои слова
 обратно.
-- 
 Eugene Berdnikov
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Evgeniy Berdnikov
On Mon, Mar 13, 2023 at 10:50:37AM +0300, Nikolay Shaplov wrote:
> В письме от понедельник, 13 марта 2023 г. 10:46:51 MSK пользователь Maksim 
> Kulik написал:
> > Мне кажется, что в RFC речь идет скорее про разные блоки server {}, т.к.
> > речь явно про several virtual hosts, а не про several server names. То есть
> > веб-сервер вполне корректно по RFC выбирает блок server {} по имени хоста и
> > используется главное имя этого блока далее в работе.
> > Вы в своем примере имеете один виртуал хост и N имен (алиасов, если хотите)
> > в нем, где N может быть бесконечным в случае дефолтного хоста. Ваш сервер и
> > выбирает этот самый хост по имени, которое видит в заголовке.
> Правильно. И то имя которое совпало должно попасть в переменную окружения 
> SERVER_NAME
> 
> Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все 
> написано), из соображений общий логики, почему в SERVER_NAME попадает первый 
> из алиасов, а не тот на который пришли??? В этом нет вообще никакой логики.

 +1

 И нужно отметить, что RFC про протокол взаимодействия, он не диктует как
 писать конфиги, поэтому там ничего нет "про разные блоки server {}".
 RFC связывает параметры запроса HTTP с параметрами CGI.
-- 
 Eugene Berdnikov
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maxim Dounin
Hello!

On Mon, Mar 13, 2023 at 10:33:36AM +0300, Nikolay Shaplov wrote:

> В письме от понедельник, 13 марта 2023 г. 10:27:10 MSK пользователь Maxim 
> Dounin написал:
> > Hello!
> > 
> > On Mon, Mar 13, 2023 at 09:20:49AM +0300, Nikolay Shaplov wrote:
> > > В письме от понедельник, 13 марта 2023 г. 09:17:17 MSK пользователь Dmitry
> > > 
> > > Ivanov написал:
> > > > Вы писали 5 марта 2023 г., 18:41:17:
> > > > > При этом в самом конфиге сайта server_name не указан, сервер
> > > > > обслуживает
> > > > > все доменные имена (фильтрация по имени осуществляется на фронтэнде).
> > > > 
> > > > Видимо, надо потыкать в RFC разработчиков фронта и забыть о "проблеме"
> > > 
> > > Не достаточно. Если перечислить все обслуживаемые доменные имена в
> > > server_name, то в SERVER_NAME при подключении дефолтного fastcgi_params
> > > попадает первое из них, а не то, на которое пришли. Что явно противоречит
> > > RFC. Я вроде об этом уже писал выше по треду.
> > 
> > Не противоречит, на бэкенд отправляется каноническое имя
> > виртуального сервера.  
> 
>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.
> 
> Но как? Английским по белому написано ", the server would use the 
> contents 
> of the request's Host header field to select the correct virtual host"

Так nginx и использует "request's Host header field to select the 
correct virtual host" (на самом деле там сложнее, подробнее в 
стандартах HTTP).  И в соответствии с этим - ставит SERVER_NAME в 
каноническое значение имени выбранного виртуального сервера.

Нормативного требования использовать значение заголовка Host в 
переменной SERVER_NAME - в RFC 3875 нет.  (И, в общем-то, быть не 
может, потому что такое требование противоречило бы нормативным 
требованиям стандарта HTTP, см. выше про "там сложнее".)

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 13 марта 2023 г. 10:46:51 MSK пользователь Maksim 
Kulik написал:
> Мне кажется, что в RFC речь идет скорее про разные блоки server {}, т.к.
> речь явно про several virtual hosts, а не про several server names. То есть
> веб-сервер вполне корректно по RFC выбирает блок server {} по имени хоста и
> используется главное имя этого блока далее в работе.
> Вы в своем примере имеете один виртуал хост и N имен (алиасов, если хотите)
> в нем, где N может быть бесконечным в случае дефолтного хоста. Ваш сервер и
> выбирает этот самый хост по имени, которое видит в заголовке.
Правильно. И то имя которое совпало должно попасть в переменную окружения 
SERVER_NAME

Ну даже если не читать сам текст RFC (а там по-моему предельно ясно все 
написано), из соображений общий логики, почему в SERVER_NAME попадает первый 
из алиасов, а не тот на который пришли??? В этом нет вообще никакой логики.

> 
> пн, 13 мар. 2023 г. в 10:33, Nikolay Shaplov :
> 
> 
> >
> >
> >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.
> >
> >
> >
> > Но как? Английским по белому написано ", the server would use the
> > contents
> > of the request's Host header field to select the correct virtual host"
> >
> >
> >
> >
> > --
> > 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
> >
> >


-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maksim Kulik
Мне кажется, что в RFC речь идет скорее про разные блоки server {}, т.к.
речь явно про several virtual hosts, а не про several server names. То есть
веб-сервер вполне корректно по RFC выбирает блок server {} по имени хоста и
используется главное имя этого блока далее в работе.
Вы в своем примере имеете один виртуал хост и N имен (алиасов, если хотите)
в нем, где N может быть бесконечным в случае дефолтного хоста. Ваш сервер и
выбирает этот самый хост по имени, которое видит в заголовке.

пн, 13 мар. 2023 г. в 10:33, Nikolay Shaplov :

>
>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.
>
> Но как? Английским по белому написано ", the server would use the
> contents
> of the request's Host header field to select the correct virtual host"
>
>
> --
> 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


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 13 марта 2023 г. 10:27:10 MSK пользователь Maxim 
Dounin написал:
> Hello!
> 
> On Mon, Mar 13, 2023 at 09:20:49AM +0300, Nikolay Shaplov wrote:
> > В письме от понедельник, 13 марта 2023 г. 09:17:17 MSK пользователь Dmitry
> > 
> > Ivanov написал:
> > > Вы писали 5 марта 2023 г., 18:41:17:
> > > > При этом в самом конфиге сайта server_name не указан, сервер
> > > > обслуживает
> > > > все доменные имена (фильтрация по имени осуществляется на фронтэнде).
> > > 
> > > Видимо, надо потыкать в RFC разработчиков фронта и забыть о "проблеме"
> > 
> > Не достаточно. Если перечислить все обслуживаемые доменные имена в
> > server_name, то в SERVER_NAME при подключении дефолтного fastcgi_params
> > попадает первое из них, а не то, на которое пришли. Что явно противоречит
> > RFC. Я вроде об этом уже писал выше по треду.
> 
> Не противоречит, на бэкенд отправляется каноническое имя
> виртуального сервера.  

   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.

Но как? Английским по белому написано ", the server would use the contents 
of the request's Host header field to select the correct virtual host"

> Хотите, чтобы было по другому -
> сконфигурируйте по другому и/или явно опишите виртуальные сервера,
> в разных блоках server{}.
> 
> Подробнее про текущее поведение я писал тут:
> 
> https://mailman.nginx.org/pipermail/nginx-ru/2023-March/USR4N4KMUMDT2KKUV4J5
> RJVBOZTSNCFF.html
> 
> Если остались какие-то вопросы - спрашивайте.


-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Maxim Dounin
Hello!

On Mon, Mar 13, 2023 at 09:20:49AM +0300, Nikolay Shaplov wrote:

> В письме от понедельник, 13 марта 2023 г. 09:17:17 MSK пользователь Dmitry 
> Ivanov написал:
> 
> > Вы писали 5 марта 2023 г., 18:41:17:
> > > При этом в самом конфиге сайта server_name не указан, сервер обслуживает
> > > все доменные имена (фильтрация по имени осуществляется на фронтэнде).
> > 
> > Видимо, надо потыкать в RFC разработчиков фронта и забыть о "проблеме"
> 
> Не достаточно. Если перечислить все обслуживаемые доменные имена в 
> server_name, то в SERVER_NAME при подключении дефолтного fastcgi_params 
> попадает первое из них, а не то, на которое пришли. Что явно противоречит 
> RFC. 
> Я вроде об этом уже писал выше по треду.

Не противоречит, на бэкенд отправляется каноническое имя 
виртуального сервера.  Хотите, чтобы было по другому - 
сконфигурируйте по другому и/или явно опишите виртуальные сервера, 
в разных блоках server{}.

Подробнее про текущее поведение я писал тут:

https://mailman.nginx.org/pipermail/nginx-ru/2023-March/USR4N4KMUMDT2KKUV4J5RJVBOZTSNCFF.html

Если остались какие-то вопросы - спрашивайте.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Nikolay Shaplov
В письме от понедельник, 13 марта 2023 г. 09:17:17 MSK пользователь Dmitry 
Ivanov написал:


> Вы писали 5 марта 2023 г., 18:41:17:
> > При этом в самом конфиге сайта server_name не указан, сервер обслуживает
> > все доменные имена (фильтрация по имени осуществляется на фронтэнде).
> 
> Видимо, надо потыкать в RFC разработчиков фронта и забыть о "проблеме"

Не достаточно. Если перечислить все обслуживаемые доменные имена в 
server_name, то в SERVER_NAME при подключении дефолтного fastcgi_params 
попадает первое из них, а не то, на которое пришли. Что явно противоречит RFC. 
Я вроде об этом уже писал выше по треду.

-- 
Nikolay Shaplov aka Nataraj
Fuzzing Engineer at Postgres Professional
Matrix IM: @dhyan:nataraj.su


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru


Re: [proposal] SERVER_NAME в fastcgi_params

2023-03-13 Пенетрантность Dmitry Ivanov
Здравствуйте, Nikolay.

Вы писали 5 марта 2023 г., 18:41:17:


> При этом в самом конфиге сайта server_name не указан, сервер обслуживает все
> доменные имена (фильтрация по имени осуществляется на фронтэнде).

Видимо, надо потыкать в RFC разработчиков фронта и забыть о "проблеме"

-- 
С уважением,
 Dmitry   nginx...@ivanoff.spb.ru
___
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru