nginx没有caching页面

我有nginx作为反向代理的FreeBSD服务器。

当我用ab util来testing时,我会看到一些奇怪的东西,比如:

  1. 内部页面不被caching
  2. 主页面被高速caching,但是有时会返回非高速caching的版本。

我不知道我犯了什么错误。 请帮忙。

这是configuration的一部分:

worker_processes 4; events { worker_connections 4096; } http { proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 200; proxy_buffer_size 4m; proxy_buffers 24 1m; proxy_busy_buffers_size 8m; proxy_temp_file_write_size 4m; proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=all:512m; keepalive_timeout 65; reset_timedout_connection on; aio sendfile; directio 1M; output_buffers 64 256k; server { listen < hidden >; server_name < hidden >; error_page 412 = @fallback; proxy_cache_key "$host$request_uri"; proxy_cache_valid 404 5m; proxy_cache_valid 500 501 502 503 504 1m; proxy_cache_valid any 10m; proxy_cache_use_stale http_502 http_503 http_504; proxy_cache_bypass $cookie_logined; proxy_no_cache $cookie_logined; location / { if ($cookie_logined) { return 412; } proxy_cache all; proxy_pass < hidden >; proxy_redirect < hidden > /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } } 

我想你不完全明白如何caching。 caching的关键参数,如:

  • proxy_cache_key
  • proxy_cache_lock
  • proxy_cache_lock_timeout
  • proxy_cache_methods
  • proxy_cache_bypass
  • proxy_cache_valid

我认为默认值给出了这个效果。 阅读这部分的文档 。