Welcome! Log In Create A New Profile

Advanced

Момент выполнения try_files ?

September 28, 2011 04:51PM
Всем добрый день!

Итак задача. В целях нормального изучения nginx я решил часть функций перенести с бекенда на вебсервер.
Например, обычный антихотлинкинг. Конфигурация рабочая, но есть небольшие вопросы.
Логика работы.
Файлы лежат в /storage, бекенд в /admin, эрроры в /err
Проверяем реферер, если корректный, отдаём как и предполагалось из /storage, некорректный -- отсылаем на бекенд (403 => @info).
add_header нужен для минимального дебага.

Проблемы
1. при запросе несуществующего в storage файла (напр. /nonexistant.txt)
try_files $uri /err/404.html =404;
работает не так как я ожидаю. Я ожидаю отдачи /err/404.html , но запрос идёт в @info; Без переопределения (=404) аналогично.
Если реферер валидный, то получаю 404 как и ожидалось.

Замена try_files на if (!-f $request_filename) {return 404;} дала хороший результат, но мне кажется это кривотой, т.к операция очень простая и должна решаться без рерайтов.
2. location = / { rewrite ^/$ /err/200.html;} кажется также кривотой по тем же причинам. Возможно я не замечаю чего-то очевидого.

server {
include /etc/nginx/conf/listen.conf;
server_name test-lcl.qwerty.name;
error_page 404 /err/404.html;
error_page 403 /err/403.html;
error_page 401 /err/401.html;
error_page 500 502 503 504 /err/50x.html;
location /err{
root /home/lazutov/img-test.qwerty.name;
}
location / {
root /home/lazutov/img-test.qwerty.name/storage;
error_page 403 @info;
try_files $uri /err/404.html =404;
valid_referers *.qwerty.name;
if ($invalid_referer) {return 403;}

}
location @info{
rewrite ^/(.*) /admin/rewrite.php?q=$1 last;
}
location = / { rewrite ^/$ /err/200.html;}
location /admin {
root /home/lazutov/img-test.qwerty.name;
location ~ \.php$ {
# ...
}
}
}

Прошу ткнуть в соответствующий ман и/или пояснить причину такой обработки.
Заранее спасибо!
Subject Author Posted

Момент выполнения try_files ?

lazutov September 28, 2011 04:51PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 190
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready