需要Nginx“Proxy_Cache”配置帮助

时间:2014-06-27 02:00:12

标签: nginx

我遇到了一个非常奇怪的问题。我只想为“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)$ {
         ....
     }
}

1 个答案:

答案 0 :(得分:1)

一旦我移动线" proxy_cache new-site;"进入"位置"阻止,这解决了我的问题。

不知道为什么当它位于一个街区之外时我有这个问题。