nginx 缓存有效吗?

nginx 缓存有效吗?

我无法判断 nginx 是否正确缓存。我正在运行一个 MEAN 堆栈应用程序,其中 nginx 在前面作为(希望)缓存反向代理。

  1. 如果我使用 chrome dev tools 网络选项卡,它有一个响应标头:X-Powered-By Express。

  2. 如果我执行 curl -I mysite.com,它会显示 302 暂时移动和服务器:nginx/version。我搞不清楚 express 还是 nginx 正在处理该请求。

我查看了我的服务器的控制台,它对每个请求都给出 304。

这是我在 sites-available/default 中的配置。nginx.config 是默认值。

proxy_cache_path  /data/nginx/cache  levels=1:2    keys_zone=STATIC:10m
    inactive=24h  max_size=1g;

server {
        listen 80 default_server;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
                proxy_pass              http://127.0.0.1:3000;
                proxy_set_header        Host $host;
                proxy_cache             STATIC;
                proxy_cache_valid       200 1d;
                add_header      cache_status    $upstream_cache_status;
            }
}

cache_status 标头未显示命中、未命中或其他任何内容。

答案1

在看

/data/nginx/cache

看看那里是否有任何文件。

我有一个关于 Nginx 的教程,其中包括缓存这里。我认为你没有设置所有必需的设置,除非有些设置有默认设置,例如

fastcgi_cache_key "$scheme$request_method$host$request_uri";

如果你正在缓存的应用程序没有正确设置标头,则你可能需要在你的位置内执行此操作

fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

阅读教程,它提供了更多提示。教程的前面部分向您展示了如何从源代码构建 Nginx,这允许您执行诸如在 mod_headers 中进行编译之类的操作,这对于添加用于调试的标头非常方便。

相关内容