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

alexpts nginx-forum at nginx.us
Sun Apr 12 18:16:24 UTC 2015


Привет!

Имею такой конфиг

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 не находит документ,
но в другой локейшен не заходит.

Не знаю баг это или нет.

Подскажите как можно решить данную задачу.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,257975,257975#msg-257975



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