nginx内置缓存

作者 : 开心源码 本文共1994个字,预计阅读时间需要5分钟 发布时间: 2022-05-11 共80人阅读

1.增加安装清理缓存板块

用参数重新配置

./configure –prefix=/app/nginx -user=nobody -group=nobody –with-http_stub_status_module \

–with-http_ssl_module –with-http_realip_module \

–add-module=../nginx_upstream_hash-0.3.1/ \

–add-module=/opt/sxt/ngx_cache_purge-2.3

前面怎样安装的这里参数一律相同,路径什么的也需要相同

Make

不执行make install

而后替换nginx二进制文件:

cp /opt/sxt/soft/tengine/sbin/nginx /app/nginx/sbin/nginx.bak

cp ./objs/nginx /opt/sxt/soft/tengine/sbin/

2.配置缓存

注意缓存的基本上都是静态的东西,动态的插了java代码之类的是缓存不了的

在http的范围里面需要配置的就两个东西:

proxy_temp_path和proxy_cache_path以下是配置意义

当然levels和keys_zone这种东西也是需要配置的

#proxy_temp_path代理商临时目录

proxy_temp_path /var/temp/nginx/proxy;

#proxy_cache_path代理商缓存目录,和proxy_temp_path必需在同一个分区

#/var/temp/nginx/proxy_cache_dir缓存目录

#levels指定该缓存空间有两层hash目录,第一层目录名是1个字母或者数字长度,第二层目录名为2个字母或者数字长度

#keys_zone=cache_one:50m缓存区名称为cache_one,在内存中的空间是50M,inactive=1d表示1天清空一次缓存 ,max_size指定磁盘空间大小为500M

proxy_cache_path /var/temp/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=500m;

而后是配置缓存的东西和缓存的条件

这里最重要的是proxy_cache cache_one;(注:这里的proxy_cache肯定是前面的keys_zone)和proxy_cache_key $host$uri$is_args$args,以及后面缓存没有的时候的proxy_pass

location ~ /item(/.*){

#指定缓存区域名称

proxy_cache cache_one;

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希

proxy_cache_key $host$uri$is_args$args;

#请求头中增加请求的主机名

proxy_set_header Host $host;

#请求头中增加真实的用户端ip,通过X-Forwarded-For可获取

proxy_set_header X-Forwarded-For $remote_addr;

#代理商访问后台tomcat

#请求item从缓存中找,假如缓存中没有则向tomcat请求

#$1表示取出正则表达式(/.*)所匹配的内容,用$1的效果例如请求http://ccc.test.com/item/100010.html则请求tomcat服务器 http://ip:port/100010.html

#假如不用$1则会将/item/…加在tomcat服务地址之后访问,即http://ip:port/item/100010.html

proxy_pass http://tomcat_server_pool$1;

}

而后就是在匹配之前配置一个purge,最重要的匹配的上和proxy_cache_purge cache_one $host$1$is_args$args

location ~ /purge(/.*)

{

#安全设置,指定请求用户端的IP或者IP段才能清理URL缓存,这里为了方便测试设置为all

#allow 127.0.0.1;

allow all;

#指定清空缓存的区域名称cache_one(要和上边proxy_cache_path缓存配置中指定的缓存区域名称一致)

#指定缓存的key规则$host$1$is_args$args,要和下边设置缓存的key一致$host$uri$is_args$args

#注意$host$1$is_args$args中的$1表示当前请求的uri,$host$1$is_args$args=$host$uri$is_args$args

proxy_cache_purge cache_one $host$1$is_args$args;

}

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » nginx内置缓存

发表回复