По nginx можете подсказать? (Компьютеры)

написал Finn, 2025-01-20, 16:40 (585 дней назад)

Опытным путем установлено, что если имя файла состоит из двух символов плюс расширение - веб-сервер его не отдает. А если три символа плюс расширение - пожалуйста. Где и как такое может быть настроено?

--
[image]

Бред какой-то...

написал Finn, 2025-01-20, 17:02 (585 дней назад) @ Finn

Сейчас в голову пришла мысль проверить гипотезу. Получается следующее:

lp.pdf: Chrome - ошибка 404. Vivaldi, Edge - открывается
la.pdf: все браузеры открыли файл

Логи:

lp.pdf:
[20/Jan/2025:16:46:44 +0300] "GET /LP.pdf HTTP/2.0" 302
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200
[20/Jan/2025:16:46:45 +0300] "GET /seo/get-url?url=https:%2F%2Fwww._______.ru%2Fpage404 (имя домена убрал)

la.pdf:
[20/Jan/2025:16:46:48 +0300] "GET /la.pdf HTTP/2.0" 200

Что-то совсем не догоняю что за дребедень. С первым именем зачем-то конвертация имени в верхний регистр идет. А если запрашивать la.pdf - конвертации в логах нет.
lp.pdf - какое-то служебное имя, что ли?

--
[image]

Может из-за того, что *nix-ах была команда lp ?

написал Edward, 2025-01-20, 20:38 (585 дней назад) @ Finn

Ищи косяки в конфигах. Ну или еще где.

написал artemvp, 2025-01-20, 22:46 (585 дней назад) @ Finn

У меня все работает с этим же именем lp.pdf

Так в том-то и вопрос какие и где искать.

написал Finn, 2025-01-21, 09:07 (584 дней назад) @ artemvp

Я не великий гуру в вопросах веба. Я на том же серваке положил файл в корень другого сайта - открывается без вопросов. Значит, я так понимаю, что-то косячит в настройках именно основного сайта. ОК. Но как может выглядеть директива, затрагивающая имя файла?

--
[image]

наоборот

написал lvm, 2025-01-21, 08:49 (584 дней назад) @ Finn

хром запрашивает LP, энжинкс редиректит его на lp - известный баг с редиректом в хроме. Воркэраунд - добавление фиктивного параметра к урлю (lp.pdf?google=morons)

Т.е. Chrome сам меняет имя файла в запросе по ходу пьесы?

написал Finn, 2025-01-21, 09:04 (584 дней назад) @ lvm

Оччень интересно... Ну вот я в каталоге сделал два файлика: lp.pdf и LP.pdf так все равно не открываются. Причем не важно как я указал имя файла - большими или маленькими.
А в чем именно баг, где почитать? Хотелось бы, все-таки, механику понять.

В том-то и дело, что я не могу менять запрос. По нему уже QR код сделали и материалы распечатали. Поторопились, да, но кто же ожидал.

--
[image]

Но по логам оно же верно конвертит имя файла.

написал Finn, 2025-01-21, 09:30 (584 дней назад) @ lvm

lp.pdf:
[20/Jan/2025:16:46:44 +0300] "GET /LP.pdf HTTP/2.0" 302
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200
[20/Jan/2025:16:46:45 +0300] "GET /seo/get-url?url=https:%2F%2Fwww._______.ru%2Fpage404 (имя домена убрал)

Т.е. пришел запрос на LP.pdf, мы его благодаря конфигу:

location ~ [A-Z] {
rewrite ^(.*)$ $scheme://$host$uri_lowercase;
}

перевели в lp.pdf. И даже получили 200 от сервера:
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200

Но до клиента файл не дошел. Клиенту отдали 404. Может a этой команде преобразования что-то не так?

--
[image]

А в режиме инкогнито запрос идет в lowercase как введено в адресной строке

написал Finn, 2025-01-21, 10:03 (584 дней назад) @ lvm

и файл спокойно отдается. А в обычном режиме непонятное - приходит запрос большими буквами, меняется на нижний регистр, клиенту отдается 304 типа не менялось, а потом 404. Походу как-то неровно дышит Chrome именно к сочетанию букв "lp" в имени файла...

--
[image]

В чем заключается? И действительно ли это баг? Если да, то почему не поправили?

написал artemvp, 2025-01-21, 15:56 (584 дней назад) @ lvm

Как-то не верится, что уже давным давно про него всем известно, но исправлять его, Гугл почему-то, не хочет...

меняет кейс при редиректе

написал lvm, 2025-01-22, 08:53 (583 дней назад) @ artemvp

Вроде, разогнул.

написал Finn, 2025-01-21, 11:19 (584 дней назад) @ Finn

Отключил в конфиге кеш этого файла

#исключаем из кеша lp.pdf
location ~ lp\.pdf {
add_header Cache-Control "no-store, no-cache, private";
expires -1;
}

Теперь файл отдается без вопросов.

--
[image]