我在两台不同的机器上有一个 nodejs 服务器和启用 SSL 的 nginx。请求/响应都正常工作,但是我在让 nginx 缓存东西时遇到了一些问题。我的服务器配置如下。最初,我在“位置/”块中有代理缓存语句,当时它只缓存我的索引页。我读到 nginx 不会缓存带有 set-cookie 标头的请求,所以我也忽略了它们(尽管它并没有阻止我的索引页面更早地被缓存)。我尝试摆弄一整天,但无法让 nginx 缓存我的 js 和 css 文件。所有此类请求都被路由回我的节点服务器。访问日志和错误日志没有任何异常条目。我究竟做错了什么?
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /webserver/nginx/credentials/cert;
ssl_certificate_key /webserver/nginx/credentials/key;
ssl_session_cache shared:SSL:10m;
location ~ .*\.(ico|css|js|gif|jpe?g|png)$ {
proxy_pass http://somewhere:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect http:// https://;
proxy_ignore_headers "Set-Cookie";
proxy_cache one;
proxy_cache_valid 200 1d;
proxy_cache_valid any 1m;
expires 7d;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}
location / {
proxy_pass http://somewhere:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect http:// https://;
}
}