1、 下载最新nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz
2、 下载 最新 ngx_cache_purge
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
3、 解压 nginx 和 ngx_cache_purge
tar zxf nginx-1.10.2.tar.gz
tar zxf ngx_cache_purge-2.3.tar.gz
4 、如果服务器原来有安装nginx 需要记录原来的参数
nginx -V
V 大写
5、 重新编译 加上新的模块 ngx_cache_purge
./configure --prefix=/etc/nginx 此处省略1万字配置 --add-module=../ngx_cache_purge-2.3
make && make install
6、 创建缓存文件夹
mkdir -p /cache/nginx/erp-cache
mkdir -p /cache/nginx/temp
7、配置nginx
# 负载均衡配置
upstream site {
ip_hash;
server 192.168.100.230;
#server 192.168.100.241:88;
}
# 缓存路径配置
proxy_cache_path /cache/nginx/site-cache levels=1:2 keys_zone=site-cache:20m max_size=50g inactive=168h;
proxy_temp_path /cache/nginx/temp; #缓存临时路径配置
server {
listen 80;
server_name demo.abc.cn;
#charset koi8-r;
access_log /var/log/nginx/log/siteaccess.log main;
location / {
proxy_pass http://site;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 清除缓存配置(注意 清除缓存的配置必须在缓存设置的前面)
location ~ /purge(/.*) {
#allow 127.0.0.1;
#allow 192.168.100.0/24;
allow all;
#deny all;
proxy_cache_purge site-cache $1$is_args$args;
}
# 缓存
location ~ .*\.(js|ico|gif|jpg|jpeg|png|xls|doc|docx|htm|html)?$
{
access_log off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://erp;
proxy_cache site-cache ;
proxy_cache_valid 168h;
proxy_cache_key $uri$is_args$args;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
8 、nginx 服务配置
sudo service nginx start
踩到的坑:
1、 清除 cache 使用:http://demo.abc.cn/purge/a.js 总是不成功, 出现404 错误。baidu & google 无果。 于是直接按照官方文档来处理。 结果成功, 于是有一个想法,如果把purge配置放到前面来是否就可以,试验后大喜!
2、坑2
nginx 安装模块必须重新编译, 所以加模块前 必须记录原来的编译配置和备份原来的配置文件。