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