nginx-1.0.12

Станислав server_inc на list.ru
Пт Фев 24 14:51:57 UTC 2012


24.02.2012 14:37, Maxim Dounin пишет:
> Hello!
>
> On Fri, Feb 24, 2012 at 01:54:57PM +0200, Станислав wrote:
>
>> 24.02.2012 11:48, Maxim Dounin пишет:
>>> Hello!
>>>
>>> On Thu, Feb 23, 2012 at 02:51:41PM +0200, Станислав wrote:
>>>
>>> [...]
>>>
>>>> Подскажите пожалуйста,
>>>> nginx 1.0.11 который проксирует на бекент запросы, иногда вместо
>>>> того, чтобы отдать из кеша картинку, возвращает "302 Found"... это и
>>>> есть баг с кешем? Спасибо.
>>> Я не берусь утверждать, что понял вопрос, но ответ, судя по всему,
>>> "нет".
>>>
>>> Maxim Dounin
>>>
>> nginx общается с бекендом и хранит данные в кеше 30 минут.
>> Наблюдалась следующая ситуация. Все работало идеально. Потом кто-то
>> из клиентов посылает HEAD запрос.
>> После этого, вместо того, чтобы отдавать контент (в моем случае это
>> был png спрайт) nginx стал отдавать страницу с кодом 302 Found.
>> Я сделал вывод, что кеш побился после этого HEAD запроса, потому и
>> задал вопрос. Если ответ "нет" значит возможно ddos уязвимость.
>> Такое пока было один раз. Кеш проекспайрелся и все заработало нормально.
> Судя по всему, для одного и того же ключа кеша возможны разные
> ответы бекенда, и вас устраивает только один из них.  Почему так -
> вопрос, требующий большего объёма информации, однако я подозреваю,
> что проблема не в nginx'е, а либо в его настройках, либо в бекенде.
>
> Maxim Dounin
>
Бекенд вряд ли может ответить по разному на запрос с одинаковыми 
исходящими данными.
Конфиг nginx используется уже долгое время да и там нет нечего 
космического. Проблем не было до этого...внезапно все так случилось.

> Здравствуйте. У Вас в proxy_cache_key есть
> $request_method?

location ~* \.(css|gif|htc|html|ico|jpeg|jpg|js|png|txt)$ {
                 limit_except GET POST {
                         deny all;
                 }
         proxy_pass http://10.72.0.7;
                 proxy_redirect off;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For 
$proxy_add_x_forwarded_for;
                 proxy_cache my-cache;
                 proxy_cache_key 
"$request_method|$http_if_modified_since|$http_if_none_match|$request_uri";
                 proxy_cache_valid  200 301 302 304 30m;
                 proxy_cache_valid  404      5m;
                 proxy_hide_header "Set-Cookie";
                 proxy_ignore_headers "Cache-Control" "Expires";
         }




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