NGINX反向代理缓存
四月 13, 2011网上好多文章都是多台服务器 做缓存 然后反向代理到后台服务器
不过作为一个穷人哪来那么多服务器
所以我们要让NGINX既做WEB服务器也做缓存..
这样同样也能起到加速效果..缓存当静态用..
适合伪静态的网站使用..(PS:废话静态还需要缓存吗~~~!)
http {
#缓存配置
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#临时目录 一般没什么数据 不过一定要有
proxy_temp_path /cache/temp;
#缓存目录 要跟临时目录在同一分区
#levels=1:2 目录层级 1:2 /a/bc
#keys_zone=cache_one:100m 单页最大缓存100M
#inactive=7d 过期时间 7天
#max_size=50g 缓存最大空间 50G
proxy_cache_path /cache/www_OOXX_com_cache levels=1:2 keys_zone=cache_one:100m inactive=7d max_size=50g;
#然后 现在配置网站反向代理部分
server {
location ~ \.html$ {
proxy_cache cache_one;# 这里要跟proxy_cache_path 里的keys_zone 对应
proxy_cache_valid 200 304 301 302 10d;
proxy_cache_valid any 1d;
proxy_cache_key $host$uri$is_args$args;
proxy_pass http://127.0.0.1:80;
proxy_redirect off;
proxy_set_header Host cache.www.OOXX.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
expires 3d;
break;
}
}
}
重点在 proxy_set_header Host cache.www.OOXX.com;
我们重新设置的Host
然后在服务器的host 文件里写上
127.0.0.1 cache.www.OOXX.com
不用把cache.www.OOXX.com 做A记录到服务器
这样速度是最快
然后配置
cache.www.OOXX.com 的访问
server {
listen 80;
server_name cache.www.OOXX.com;
root /data/www.OOXX.com;
rewrite “^/article/(\d+).shtml$” /iCMS/show.php?id=$1 last;
rewrite “^/article/(\d+)_(\d+).shtml$” /iCMS/show.php?id=$1&p=$2 last;
location ~ \.php$ {
include fcgi.conf;
}
error_page 500 502 503 504 /502.html;
error_page 404 400 403 /404.html;
}