http {
......
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=proxy_cache_zone:128m inactive=5m max_size=10g;
proxy_buffering on; #默认on,是否缓存后端服务器响应
proxy_buffer_size 64k; #缓存区大小
proxy_buffers 8 32k; #指定多少与多大缓存区来缓存后端服务器响应
proxy_temp_path proxy_temp 1 2; #默认目录proxy_temp
proxy_max_temp_file_size 1024m; #默认1024m,单个临时文件最大大小
proxy_temp_file_write_size 128k; #默认16k,一次写入临时文件数据大小
proxy_request_buffering on; #默认on,是否先缓存整个客户端请求正文再发送后端服务器
proxy_ignore_headers Set-Cookie; #忽略缓存cookie
proxy_set_header Host $host; #添加请求头Host字段值为本机IP地址
proxy_set_header X-Real-IP $remote_addr; #添加请求头X-Real-IP值为客户端IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #原始客户端IP和代理IP地址
proxy_connect_timeout 60s; #默认60s,与后端服务器建立连接超时时间
proxy_read_timeout 300s; #默认60s,读取后端服务器响应超时时间
proxy_send_timeout 300s; #默认60s,发送请求到后端服务器超时时间
server {
listen 88;
server_name localhost;
#动态资源不做缓存
location / {
proxy_pass http://192.168.1.200:8080;
}
#只缓存静态文件
location ~ \.(html|css|js|jpg|png|gif)$ {
root /usr/local/apache/webapps/ROOT;
proxy_cache proxy_cache_zone; #指定缓存区名称
proxy_cache_key $host$request_uri; #定义缓存的key,根据md5值为缓存文件名
proxy_cache_valid 200 302 10m; #为不同状态码设置缓存时间
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
#add_header X-Cache $upstream_cache_status; #添加响应头,测试是否命中;代理服务器才有的变量
}
}
}