打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
nginx web缓存配置

1.场景:使用proxy_cache缓存web静态内容文件和通过rewrite伪静态化后的html整页面缓存。

动态内容通过Ajax动态获取,也保持内容一致。

2.nginx 配置

a.添加缓存文件保存路径

vi /etc/nginx/nginx.conf

#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /cache/proxy_temp_path;

#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。

proxy_cache_path /cach/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=5m max_size=30g;


b.添加缓存配置


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html)$

{

#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_cache cache_one;
#进行缓存,使用Web缓存区cache_one

proxy_cache_valid 200 304 5m;
#对不同的HTTP状态码设置不同的缓存时间

proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
proxy_cache_key $host$uri$is_args$args;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Accept-Encoding "none";
#设定proxy_set_header Accept-Encoding '';(或是后台服务器关闭gzip),这样这台机器才不会缓存被压缩的文件,造成乱码
#proxy_set_header Accept-Encoding ""; 这个也可

proxy_ignore_headers "Cache-Control" "Expires";
#这段配置加上后,proxy_cache就能支持后台设定的expires。


if ( !-e $request_filename )

{
proxy_pass http://emulsites;
}

expires 30m;

}


#php文件请求转发给后端
location ~ .*\.(php|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://emulsites;
}


3.重载nginx

sudo service nginx reload


访问页面,查看缓存目录是否生成缓存文件






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
有关nginx 模块优化设置参考
nginx cache试用
如何设置nginx反向代理实现服务器瞬间故障转移
nginx支持缓存302重定向后的文件到本地
【Nginx】05、nginx 缓冲缓存设置
nginx 常用模块整理-2 -- 51cto.大飞侠大虾
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服