说一下,这篇文档主要是针对记录安装proxy_cache的,顺便记一下nginx.conf配置文件,实验环境,后端就开了一个tomcat
1.安装nginx
下载purge包,清除缓存用的,放到nginx同级目录下,说一下,我是centos7环境,开始下的purge2.0安装报错,亲测2.3可兼容。然后编译安装nginx
./configure --add-module=../ngx_cache_purge-2.3 --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
安装完后查看编译参数
/usr/local/nginx/sbin/nginx -V
是否有以下显示:
configure arguments: --add-module=../ngx_cache_purge-2.3 --prefix=/usr/local/nginx --with-http_stub_status_module
2.修改nginx.conf配置文件
user nobody nobody;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
charset utf-8;
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
client_header_buffer_size 4k; #设置分页大小,使用getconf PAGESIZE命令查看
open_file_cache_valid 80s; #80s检查一次缓存信息
open_file_cache max=65535 inactive=60s; #为打开文件指定缓存,默认不启用。建议和打开文件数一致,inactive指经过多久文件没被请求后删除缓存。
client_body_buffer_size 512k; #建议512k
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on; #开启zip网页压缩
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css application/xml;
proxy_buffer_size 256k; #设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小。
proxy_buffers 4 256k; #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k。
proxy_temp_path /usr/local/nginx/proxy_temp; #proxy_temp_path和proxy_cache_path指定的路径必须在同一分区。
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=tmp_test:200m inactive=1d max_size=1g; #设置内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为1GB,levels=1:2 表示缓存目录的第一级目录是1个字符,第二级目录是2个字符
upstream web_boss {
ip_hash;
server 192.168.1.222:8080 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
root html;
index index.html index.htm;
proxy_pass http://web_boss;
proxy_set_header Host $http_host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100m;
proxy_cache tmp_test;
proxy_cache_key $host$uri$is_args$args; #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓>存目录内
proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间
}
#清除URL缓存
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;
proxy_cache_purge tmp_test $host$1$is_args$args;
}
#用匹配扩展名的方式匹配静态文件
location ~* \.(js|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
root /usr/local/simba; #项目存放目录
expires 24h;
}
#用匹配目录的方式匹配静态目录
location ~ ^/(upload|resources)/
{
root /usr/local/simba; #项目存放目录
expires 30d;
}
#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 html;
}
}
3.验证
访问192.168.1.222页面,显示正常,查看/usr/local/nginx/nginx_cache,出现缓存目录,正常。
4.清除缓存
如清除http://192.168.1.222/goods_cart1.htm页面,
网页输入192.168.1.222/purge/goods_cart1.htm,即在ip后面加上purge目录,
网页如下显示即成功
Successful purge
Key : 192.168.1.222/goods_cart1.htm
Path: /usr/local/nginx/proxy_cache/a/7e/a2c9539abf247bb04915dd22357897ea