PURGE模块下载http://labs.frickle.com/files/ngx_cache_purge-1.2.tar.gz
tar zxvf ngx_cache_purge-1.2.tar.gz
其他模块安装详见 nginx安装与配置
在nginx目录下编译
#./configure --add-module=../ngx_cache_purge-1.2 --with-http_realip_module --with-http_gzip_static_module
--with-http_stub_status_module --with-http_ssl_module
--with-pcre=../pcre-8.10 --with-openssl=../openssl-1.0.0 --with-zlib=../zlib-1.2.5
#make
#make install
安装完成,进入/usr/local/nginx/conf
vi nginx.conf
user nobody nobody;
worker_processes 4;
error_log logs/nginx_error.log crit;
pid logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
client_body_buffer_size 512k;
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;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /opt/data/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path /opt/data/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=5g;
upstream backend_server {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name www.domain.com;
index index.html index.htm;
root /opt/data/www;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
expires 1d;
}
#用于清除缓存,假设一个URL为http://192.168.6.5/test.txt,通过访问http://192.168.6.5/purge/test.txt就可以清除该URL的缓存。
location ~ /purge(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
allow 127.0.0.1;
allow 192.168.6.0/24;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
#扩展名以.jspa .jsp结尾的动态应用程序不缓存.
location ~ .*\.(jspa|jsp)?$
{
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
}
access_log off;
}
}
启动nginx
#/usr/local/nginx/sbin/nginx
如果已经启动,导入配置文件如下
#ps aux | grep nginx
root 22891 0.0 0.0 208976 1832 ? Ss 11:47 0:00 nginx: master process ./nginx
nobody 23388 0.0 0.3 221520 13344 ? S 13:47 0:00 nginx: worker process
nobody 23389 0.0 0.3 221880 13868 ? S 13:47 0:00 nginx: worker process
nobody 23390 0.0 0.3 221520 13344 ? S 13:47 0:00 nginx: worker process
nobody 23391 0.0 0.3 221520 13344 ? S 13:47 0:00 nginx: worker process
nobody 23392 0.0 0.0 208976 840 ? S 13:47 0:00 nginx: cache manager process
root 27404 0.1 0.4 109648 16936 ? S 15:24 0:00 gedit file:///usr/local/nginx/conf/nginx.conf
root 27414 0.0 0.0 3236 752 pts/1 S+ 15:29 0:00 grep nginx
#kill -hup 22891
访问 www.domain.com/index.html
在缓存文件夹会产生一些目录
清楚
www.domain.com/purge/index.html
显示Successful purge
分享到:
相关推荐
3. proxy_cache_key:设置用于缓存文件的命名规则,通常是Nginx的内置变量组合,例如使用$host和$request_uri来生成缓存文件名。 4. proxy_cache_valid:针对不同的HTTP响应状态码设置缓存时间,例如可以设置对304...
proxy_cache_key $scheme$proxy_host$request_uri; proxy_cache_revalidate on; proxy_cache_purge on; } location = /purge { allow 192.168.0.0/24; # 只允许特定IP执行清除操作 deny all; proxy_cache_...
ngx_cache_purge 是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。配置指令(相同位置语法)fastcgi_cache_purgesyntax: fastcgi_cache_purge on|off|<method> [from all|<ip> [.....
配置proxy_cache涉及多个指令,如proxy_cache_path定义缓存路径,proxy_cache_key设定缓存键,proxy_cache_bypass控制何时绕过缓存等。 2. **CDN原理**:内容分发网络是一种分布式网络服务,通过在全球范围内的多个...
nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”,在官网上查找了相关说明,也没有发现问题,最后看应用范围...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { ... location /purge { allow 192.168.1.0/24; # 允许特定 IP 地址执行清除操作 deny all; proxy_cache_purge...
proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; # ... } ``` 这里,`proxy_cache_path` 指定了缓存存储的路径,`levels` 参数定义了缓存目录的层级,`...
以上仅是Nginx配置的冰山一角,实际应用中还可以结合正则表达式、if条件语句、自定义模块等实现更多高级功能。理解并熟练掌握这些基本配置,能够帮助运维人员更好地管理和优化Nginx服务器,提升网站性能和稳定性。
前言:之前使用官方的nginx proxy_cache作为CDN静态缓存发现该模块清理缓存是一个大问题,只能一条一条url的清除,为此写了一个批量清除缓存的脚本 主要功能包括: 1.按文件类型清理 2.按具体的文件名清理 3.按网站...
ngx_cache_purge-2.1.tar.gz 是一个用于Nginx服务器的插件包,主要功能是实现缓存清理。Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于Web服务领域,而缓存机制则能显著提高静态资源的访问速度。ngx_cache_...
3. 缓存更新:Nginx提供了多种机制来控制缓存的更新,如`proxy_cache_revalidate`(根据Last-Modified或ETag头验证缓存)、`proxy_cache_bypass`(决定是否跳过缓存)和`proxy_cache_lock`(防止同一资源的并发请求...
- `proxy_cache_path path[levels=levels]keys_zone=name:size [inactive=time][max_size=size] [loader_files=number][loader_sleep=time] [loader_threshold=time];` 这个指令用于设置缓存存储路径及相关的参数。...
尽管proxy_cache作为Nginx的一个模块,在处理磁盘IO方面可能不如专业的缓存软件,但Nginx的高并发处理能力仍为其带来了性能优势。 Squid在此次测试中的综合表现最佳,尤其在磁盘IO处理方面表现突出。这一点可能是...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; proxy_temp_path /var/lib/nginx/tmp/proxy; server { listen 8080; server_name proxy.example.com; location / { ...
缓存更新可以通过 proxy_cache_valid 配置实现。例如: ``` proxy_cache_valid 200 302 1h; proxy_cache_valid 404 1m; ``` 通过 Nginx 反向代理、负载均衡和高速缓存,可以提高服务器的性能和响应速度,满足高...