mifa
@mifa

Nginx не кеширует длинные URL

Nginx упорно не хочет кешировать длинные урлы. А именно запрос:

1.1.1.1 - - [17/Feb/2012:06:10:21 +0000] "www2.website.com" "GET /zone=1470382351&lp=1468664992&var1=www2V4anothersiteSite&path=/de/live-game/&src=LC&selected_slide_name=1468664992&p_path=/de/live-game/ HTTP/1.0" 302 - "http://www2.website.com/de" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729)" 131666

Регулярно проксируется к апачам, и не кешируется нгниксом. Все остальное вроде кешируется нормально.

proxy_cache_path /webcache/www2 levels=1:2 keys_zone=www2-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /webcache/www2/tmp;


location /shared/css {
root /home/nginx/public;
expires 1d;
#access_log off;
}

location /shared/js {
root /home/nginx/public;
expires 1d;
#access_log off;
}

location /js {
root /home/nginx/public/www2;
expires 1d;
#access_log off;
}

location /skin/default {
root /home/nginx/public/www2;
expires 3d;
#access_log off;
}

#location ~ ^.+\.(swf|jpg|jpeg|gif|png|ico|css|js|tmpl)$ {
# root /home/nginx/public/www2;
# expires 3d;
#access_log off;
# }

location / {
proxy_pass www2;
proxy_cache www2-cache;
proxy_cache_valid 200 30m;
proxy_cache_valid 302 30m;
proxy_cache_valid 304 30m;
proxy_cache_valid any 10m;
}


В чем могут быть грабли?
  • Вопрос задан
  • 3325 просмотров
Пригласить эксперта
Ответы на вопрос 2
tyzhnenko
@tyzhnenko
System Administrator, DevOps, QA Engineer
Попробуйте изменить значение proxy_cache_key

Я например использую — proxy_cache_key "$request_method|$http_if_none_match|$host|$uri$args"

p.s. кстати, попробуйте добавить к аксес логу '"$upstream_addr" "$upstream_response_time" "$upstream_status" $upstream_cache_status', будет удобнее делать дебаг кеширования.
Ответ написан
click0
@click0
Системный & сетевой архитектор
Добавьте что-то типа

server_names_hash_max_size 512;
server_names_hash_bucket_size 128;


А потом поиграйтесь с параметрами
client_header_buffer_size 2k;
large_client_header_buffers 6 6k;
request_pool_size 12k;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы