nginx 没有缓存页面

nginx 没有缓存页面

我有 FreeBSD 服务器,使用 nginx 作为反向代理。

当我用 ab util 测试它时,我发现一些奇怪的事情,例如:

  1. 内部页面未被缓存。
  2. 主页已缓存,但有时会返回非缓存版本。

我不知道我哪里犯了错误。请帮帮我。

这是配置的一部分:

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;
        }

    }

}

答案1

我觉得你还没有完全理解缓存是怎么工作的。缓存的关键参数比如:

  • proxy_cache_key
  • 代理缓存锁
  • proxy_cache_lock_timeout
  • proxy_cache_methods
  • proxy_cache_bypass
  • proxy_cache_valid

我认为默认值会产生这种效果。阅读本部分文档

相关内容