Re: два правила работают по отделности но не вместе
shambler81
nginx-forum at nginx.us
Tue Jan 22 12:43:49 UTC 2013
Добрый день, сегодня нашел почему именно не отррабатывают правила но
try_file насколько я понял в старом nginx не понимают $
фактически проблема была вот в этом
location ~* ^.+\.(htm|html)$ {
root /var/www/$host/web;
if ($host ~* ^(www\.)(.+)) {
set $HBW $2;
root /var/www/$HBW/web;
}
try_files $uri /index.php;
access_log off;
expires 30d;
}
А следовательно если файл фактически отсутствует то передать его статически
из php
а в данном локейшене отдается только статика и php попросту не работает
Соответственно если я добавлю сюда
index index.php index.html index.htm;
root /var/www//web/;
proxy_pass http://$host:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
То все работает
но html больше всегда отдается через php
А Мне нужно только если файла нет то отдавать как php и А если есть то
просто отдавать статику как и всегда.
следовательно я написал следующее условие что при try_files $poteryan
отдавать
location $poteryan
root /var/www//web/;
proxy_pass http://$host:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
И по идее насколько я понимаю если файл потерян то отдастся все пойдет
напрямую без nginx
что вполне устроит. фактически такие сайты будут работать без кеширования
html
Но почему то $potehyan не работает
Подскажите пожалуйста почему ?
nginx очень старый.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,234927,235407#msg-235407
Подробная информация о списке рассылки nginx-ru