disable symlinks + try files = fail
Валентин Бартенев
ne на vbart.ru
Чт Апр 26 14:01:22 UTC 2012
On Thursday 26 April 2012 17:29:20 charlie wrote:
[...]
> А вот с конфигом, в котором
> используется try_files, http://test.ru/test.txt
> отображает содержимое файла другого
> юзера:
>
> -----------------------------------------------------
> server {
> listen 192.168.0.1:80;
> server_name test.ru www.test.ru;
> root /home/test/public_html;
> location / {
> location ~.*\.(gif|jpg|png|ico|txt|js|css)$ {
> try_files $uri @backend;
> }
> error_page 405 = @backend;
> add_header X-Cache "HIT from Backend";
> proxy_pass http://192.168.0.1:8081;
> include proxy.inc;
> }
> location @backend {
> internal;
> proxy_pass http://192.168.0.1:8081;
> include proxy.inc;
> }
> location ~ .*\.(php|jsp|cgi|pl|py)?$ {
> proxy_pass http://192.168.0.1:8081;
> include proxy.inc;
> }
> }
> -----------------------------------------------------
> Это бага или фича?
> Если фича, как будет выглядеть
> корректный конфиг, чтобы и try_files
> работало, проксируя запросы в апач,
> если файл не существует, и запросы к
> существующим файлам проверялись на
> симлинкнутость?
>
try_files работает корректно, оно делает ровно то, что вы написали в
конфигурации: при недоступности файла перенаправляет на @backend. И,
судя по всему, файл уже отдает ваш апач.
Подозреваю, вы хотели что-то такое:
location \.(?:gif|jpg|png|ico|txt|js|css)$ {
error_page 404 = @backend;
}
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru