Re: Проблема с add header + try files

Maxim Dounin mdounin at mdounin.ru
Mon Apr 13 12:50:52 UTC 2015


Hello!

On Sun, Apr 12, 2015 at 02:16:24PM -0400, alexpts wrote:

> Привет!
> 
> Имею такой конфиг
> 
> location ~ \.html {
>     gzip_static on;
>     root xxx;
>     try_files $uri /index.php$is_args$args;
> }
> 
> Локейшен проверяет есть ли в ФС статический документ и отдает его клиенту из
> кеша, Если документа нет, то отдает управление переходит в локейшен, который
> обрабатывает php  скрипты для генерации документа.
> 
> Потребовалось, сетить клиенту куку с ip клиента. Изменил конфиг:
> 
> 
> location ~ \.html {
>     gzip_static on;
>     root xxx;
> 
>     if ($cookie___lastip != $remote_addr) {
>         add_header Set-Cookie
> "__lastip=$remote_addr;Domain=$host;Path=/;Max-Age=31536000";
>     }
> 
>     try_files $uri /index.php$is_args$args;
> }
> 
> 
> Если документ в кеше, то условие работает верно и если сменился ip или не
> было такой куки, то приходит кука в ответе от сервера.
> А вот если документа нет в кеше и нет куки с таким именем или значение куки
> не равно ip адресу, то запрос возвращает 404. Try_files не находит документ,
> но в другой локейшен не заходит.
> 
> Не знаю баг это или нет.
> 
> Подскажите как можно решить данную задачу.

На всякий случай оставлю эту ссылку здесь:

http://wiki.nginx.org/IfIsEvil

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru