nginx的代理配置缓存

需要第三方的ngx_cache_purge模块:
wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz
如果上边地址失效,可以下载这里的  http://mylinux.5d6d.com/userdirs ... he_purge-1.0.tar.gz

编译nginx时,需要加上参数
--add-module=/usr/local/src/ngx_cache_purge-1.0

nginx.conf 需要有下面参数

proxy_connect_timeout 600;                 #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout    600;                    #连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout    600;                    #后端服务器数据回传时间(代理发送超时)
proxy_buffer_size     32k;                        #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers         4 32k;                       #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size  64k;               #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size  1024m;     #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
proxy_ignore_client_abort on;               #不允许代理端主动关闭连接

#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path   /cache/proxy_temp_path;   这里的/cache/proxy_temp_path 是要手动创建的,否则会报错。
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path  /cache/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;


另外虚拟主机配置文件如下:
server {
            listen  80;
            server_name  www.test.com;
            location / {
                proxy_pass     http://192.168.1.111:8080;
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_cache cache_one;
                proxy_cache_valid 200 304 12h;
                proxy_cache_valid 301 302 1m;
                proxy_cache_valid any 1m;
                proxy_cache_key $host$uri$is_args$args;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                expires  12h;
            }
            location ~ .*\.(php|jsp|cgi)?$  {
                proxy_pass     http://192.168.1.111:8080;
                proxy_set_header  Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            access_log  /dev/null combined_realip;
        }

添加新评论 »