merge_slashes

Roman Arutyunyan arut на nginx.com
Чт Май 30 14:36:02 UTC 2024


Добрый день,

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

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

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

> 
>> On 24 Apr 2024, at 19:24, Roman Arutyunyan <arut на nginx.com> wrote:
>> 
>> Добрый день,
>> 
>>> On 16 Apr 2024, at 11:41 PM, Vladimir Sopot <jd на artdesign.ru <mailto:jd на 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
>> arut на nginx.com <mailto:arut на 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
arut на nginx.com




----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20240530/9f3063ba/attachment.htm>


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