On Mon, 6 Mar 2023, Nikolay Shaplov wrote:

В письме от понедельник, 6 марта 2023 г. 13:59:30 MSK пользователь Andrey Kopeyko написал:
к "нарушению RFC" приводит ваша конкретная конфигурация - когда вы
обрабатываете множество имён в дефолтном сервере, для которого вы _не
задаёте_ server_name.

Вот корень всех бед.

И именно поэтому дефолтное поведение менять не следует.

Я бы с этим всем согласился, приняв на веру, если бы в RFC не было бы написано:

The SERVER_NAME variable MUST be set to the name of the server host
to which the client request is directed.

Вот это самое правило вы и нарушаете, в описанной вами конфигурации, - но раз вам так надо и вы понимаете что вы делаете, то пускай.

Обходной хак вам подсказали - использовать $http_host, и быть готовым что там тоже может быть пусто.

Но вы продолжаете желать странного - поломать дефотное поведение для всех прочих случаев...


Приходите в офис, обсудим.


...

... 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.

MUST как-то обязывает к тому чтобы оно либо было установлено, либо вообще отказывалось работать, со страшной руганью, на мой вкус...

Если вы зададите для этого сервера несуществующее имя ("_" как рекомендует
документация, или "fakehost.fakedomain") - переменная SERVER_NAME волшебным
образом появится.

P.S.
Будете в офисе - подходите, обсудим подробнее (ибо голосом будет удобнее).
Буду в городе в начале след. недели. Обсудим, да...


--
Best regards,
Andrey A. Kopeyko <and...@kopeyko.ru>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить