我遇到了一个非常奇怪的问题。我只想为“new-site.com”启用代理缓存。但是,在这样做时,Nginx会代理缓存我的所有网站。
我已经浏览了所有的vhost / config文件,并确保所有“http”和“server”块都已正确打开和关闭。我的理解是,当您包含(例如)“proxy_cache new-site;”时,Proxy_Cache仅为站点启用。在您的网站“服务器”块中。
在我的“http”块中,我加载了所有网站.conf文件,但它们都没有包含任何proxy_cache指令。
我做错了什么?
以下是我的配置文件的片段:
http {
...
...
# nginx cache
proxy_cache_path /www/new-site.com/httpdocs/cache levels=1:2
keys_zone=new-site:10m
max_size=50m
inactive=1440m;
proxy_temp_path /www/new-site.com/httpdocs/cache/tmp 1 2;
# virtual hosting
include /etc/nginx/vhosts/*.conf;
}
然后这是我的“new-site.com”vhost conf文件:
server {
listen xxx.xxx.xxx.xxx:80;
server_name new-site.com;
root /www/new-site.com/httpdocs;
index index.php;
...
...
proxy_cache new-site;
location / {
try_files $uri @backend;
}
location ~* \.php {
include /usr/local/etc/nginx/proxypass.conf;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header updating http_502;
proxy_cache_bypass $cookie_session $http_secret_header;
proxy_no_cache $cookie_session;
add_header X-Cache $upstream_cache_status;
proxy_cache_valid 200 302 5m;
proxy_cache_valid 404 1m;
proxy_pass http://127.0.0.1:80;
}
location @backend {
include /usr/local/etc/nginx/proxypass.conf;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header updating http_502;
proxy_cache_bypass $cookie_session $http_secret_header;
proxy_no_cache $cookie_session;
add_header X-Cache $upstream_cache_status;
proxy_cache_valid 200 302 5m;
proxy_cache_valid 404 1m;
proxy_pass http://127.0.0.1:80;
}
location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|css|js)$ {
....
}
}
答案 0 :(得分:1)
一旦我移动线" proxy_cache new-site;"进入"位置"阻止,这解决了我的问题。
不知道为什么当它位于一个街区之外时我有这个问题。