Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
try_files и индек сы
- To: nginx-ru@xxxxxxxxx
- Subject: try_files и индек сы
- From: Алексей Бондарь <alexey.bondar@xxxxxxxxx>
- Date: Mon, 19 Jan 2009 01:39:05 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :content-type:content-transfer-encoding:mime-version:subject:date :x-mailer; bh=xNbKaR8XjjuJR6ne67kh6Ct4Pu9IzjKa7MUNuJZZCkc=; b=dTo1UpAKVabFfLKYsTOEIlnb1i4qnke45sJZVD+CSZqsx4Rw1xTr+aOpTZRXgQ12R/ SGiPC1brAiCza2yUSS2M3cu9BKI3EKsrYegCd/JCpEnJSQRqhItcSB50N9xz2wU/3LWJ bh6jQBna9ZPAnQmLdFth9DGeWOaNk1VZd4FT8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:content-type:content-transfer-encoding :mime-version:subject:date:x-mailer; b=ukqfccRomolZBc0raVBhqrC83xXJMoEmPe+JynPC607OXnSkZI4C1etu3vUi2Ghcfa LxFmzkBaBed7exZyxnxJFhvbynwq84a1m5Q4KNWbphVYkq8bAYbZAf0sUIPCHkPXqsR0 pJvzP6NDoZAzHhsKYoApJguCrA6IlDBgGEpzI=
Доброй ночи,
Решил обновится с версии 0.6.34 до 0.7.30 и
попутно избавится от кучи if'ов в пользу
try_files. Nginx проксирует apache с passenger (mod_rails).
Получился следующий конфиг:
server {
listen 80;
server_name host.ru;
root /home/user/public;
access_log /home/user/log/access.log;
error_log /home/user/log/error.log debug;
error_page 500 502 503 504 /500.html;
client_max_body_size 50M;
log_not_found on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_max_temp_file_size 0;
try_files /system/maintenance.html
$uri $uri/index.html $uri.html
@apache;
}
location @apache {
proxy_pass http://127.0.0.1:8080;
}
}
И теперь, в случае если клиент заходит
по адресу http://host.ru/, а в root нет
индексного файла, он получает 403. То-же
самое происходит если в root есть
директория, но в ней так-же нет
индексного файла (http://host.ru/some/). Что
несколько ломает файловое кеширование
в Rails.
В логи при уровне debug пишется следующее:
2009/01/18 14:03:16 [error] 16996#0: *413520 directory index of "/home/
user/public/" is forbidden
Если после try_files добавить условие:
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8080;
break;
}
Всё работает как надо и запрос в этом
случае проксируется к бэкэнду.
Так и должно быть? В документации
сказано что try_files в случае если файл
найден небыл должен делать редирект на
последний параметр, по логике это
должно относится и к индексам.
Спасибо.
|