Добрый день,

> On 29 May 2024, at 9:53 PM, Vladimir Sopot <j...@artdesign.ru> wrote:
> 
> И как быть, если мне в одном из серверов необходимо иметь два подряд идущих 
> слэша? Это purge для кэша, который зависит от cookies пользователя, которые, 
> естественным образом могут быть пустыми.

Самый простой способ - использовать TLS с SNI. В таком случае выбор сервера  
будет происходить на этапе хендшейка TLS.

Теоретически можно изменить поведение nginx таким образом, чтобы при указании 
полного uri в строке запроса выбор сервера происходил до обработки uri, и это 
вам поможет.
Но это требует осторожности и анализа возможных последствий. И в этом случае 
marge_slashes будет работать по-разному в строке запроса и в заголовке Host, 
что тоже не очень хорошо.

> 
>> On 24 Apr 2024, at 19:24, Roman Arutyunyan <a...@nginx.com> wrote:
>> 
>> Добрый день,
>> 
>>> On 16 Apr 2024, at 11:41 PM, Vladimir Sopot <j...@artdesign.ru 
>>> <mailto:j...@artdesign.ru>> wrote:
>>> 
>>> Здравствуйте!
>>> 
>>> Есть примерно такой упрощённый конфиг и при обращении к 
>>> some.local////////some.html merge_slashes не работает. Если в первом 
>>> сервере убрать merge_slashes off, то всё работает нормально и во втором 
>>> сервере. 
>>> Почему так? nginx version: nginx/1.25.3
>> 
>> На момент парсинга строки запроса, nginx еще не знает о том, какой 
>> виртуальный сервер будет выбран и использует настройки дефолтного.
>> 
>> Если вы включите ssl, то ситуация будет другой.
>> 
>>> 
>>> http {
>>>     merge_slashes on;
>>>     }
>>> 
>>> server {
>>>     listen 127.0.0.1:80 default_server;     
>>>     server_name 127.0.0.1 _ "";
>>> 
>>>     merge_slashes off;
>>>     allow 127.0.0.1;
>>>     deny all;
>>> 
>>>       location /nginx_status {
>>>           stub_status on;
>>>           }
>>> 
>>> …. много location
>>> 
>>>     }
>>> 
>>> server {
>>>       listen *:80;
>>>       server_name  some.local;
>>> 
>>> …. много location
>>> 
>>>     }
>>> 
>>> Best, VS
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru@nginx.org
>>> https://mailman.nginx.org/mailman/listinfo/nginx-ru
>> 
>> ----
>> Roman Arutyunyan
>> a...@nginx.com <mailto:a...@nginx.com>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org <mailto: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

----
Roman Arutyunyan
a...@nginx.com




_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить