nginx 逆向代理前端缓存的问题

lionel1022 发布于 2014/02/17 09:55
阅读 624
收藏 0
有两台服务器(A和B)全是nginx服务。A服务器做前端代理服务器和页面缓存,B是后端服务器,两个服务器上面我都装的是虚拟主机.(tt.test.com, aa.tt.test.com, bb.test.com, cc.test.com,dd.test.com),逆向代理都没有问题,但是缓存上面就有问题了。前端只能缓存 tt.test.com, aa.tt.test.com 这两个网站,其它网站都不能被缓存。配置文件如下。

proxy.conf
proxy_temp_path   /data/cache/proxy_temp_dir;   #指定临时文件目录
proxy_cache_path  /data/cache/proxy_cache_dir levels=1:2 keys_zone=cache_one:5000m inactive=7d max_size=100g;#设置Web缓存区名称为cache_one,内存缓存为5000MB,自动清除7天内没有被访问的文件,硬盘缓存为100GB。
client_body_buffer_size  512k; #增加缓冲区代理缓冲客户端请求的最大字节数
proxy_connect_timeout    60;   #增加连接后端服务器超时时间
proxy_read_timeout       60;   #增加后端服务器响应请求超时时间
proxy_send_timeout       60;   #增加后端服务器发送数据超时时间
proxy_buffer_size        32k;   #增加代理请求缓存区大小
proxy_buffers           4 64k;  #增加
proxy_busy_buffers_size 128k;   #增加系统繁忙时可申请的proxy_buffers大小
proxy_temp_file_write_size 128k;  #增加proxy缓存临时文件的大小
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;   #增加故障转移,如果后端的服务器返回502、504、执行超时等错>误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_cache cache_one;  #增加使用web缓存区cache_one

tt.test.conf

server
        {
                listen  80;
                server_name tt.tst.com;
                index index.htm index.html index.php;


                location / {
                        proxy_pass http://tt.server;
                        add_header  tt-Cache "$upstream_cache_status";
                        proxy_cache_key $host$uri$is_args$args;  #增加设置web缓存的key值,nginx根据key值md5哈希存储缓存
                        proxy_set_header Host  $host;
                        proxy_set_header X-Forwarded-For  $remote_addr;
                        proxy_cache_valid 200 304 1m;
                        expires  1m;
                }


                location ~ .*\.(php|php5)?$
                        {
                                 proxy_set_header Host $http_host;
                                 proxy_set_header X-Real-IP $remote_addr;
                                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                 proxy_pass   http://tjfy.ts.server;
                }


                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
                {
                        proxy_pass http://tt.server;
                        proxy_cache_key $host$uri$is_args$args;  #增加设置web缓存的key值,nginx根据key值md5哈希存储缓存
                        proxy_set_header Host  $host;
                        proxy_set_header X-Forwarded-For  $remote_addr;
                        proxy_cache_valid 200 304 5h;
                        expires 5h;
                }


                location ~ .*\.(js|css)?$
                {
                        proxy_pass http://tt.server;
                        proxy_cache_key $host$uri$is_args$args;  #增加设置web缓存的key值,nginx根据key值md5哈希存储缓存
                        proxy_set_header Host  $host;
                        proxy_set_header X-Forwarded-For  $remote_addr;
                        proxy_cache_valid 200 304 1h;
                        expires      1h;
                }




                location ~ /purge(/.*)   #用于清除缓存
                {
                     allow            127.0.0.1;
                     allow            192.168.100.0/24;   #设置只允许指定的IP或IP段才可以清除URL缓存。
                     deny            all;
                     proxy_cache_purge    cache_one   $host$1$is_args$args;
                }


                access_log /var/log/nginx/tt.test.com.access.log;

其它几个网站的配置文件都一样。名字不同而已。


以上是我陈述的问题。不太理解为什么会有的网站能被缓存,有的不能被缓存。请大大指导下。

加载中
0
l
lionel1022
有没有亲帮帮我的,在线等。。。
0
滔哥
滔哥
表示不懂的路过一下,帮你顶顶
返回顶部
顶部