Nginx+Proxy_cache高速缓存配置

 更新时间:2026年01月16日 09:45:18   作者:奔跑、在路上  
本文主要介绍了Nginx+Proxy_cache高速缓存配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。

一、 安装nginx和ngx-purge:

ulimit -SHn 65535
cd /usr/local/nginx
tar zxvf ngx_cache_purge-1.4.tar.gz
cd nginx-1.6.1/
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=../ngx_cache_purge-1.4
make && make install
cd ../

二、 Nginx Cache配置:

http  {  \\添加以下内容 ,不能定义在server{}上下文中 }
.......
#定义从后端服务器接收的临时文件的存放路径
proxy_temp_path /data/proxy_temp_dir;
#设置Web缓存区名称cache_one,内存缓存空间100MB,1天没有被访问的内容自动清除,硬盘缓存空间10GB。
proxy_cache_path /nginx/cache/first levels=1:2:1 keys_zone=cache_one:100m inactive=1d max_size=10g;   

upstream backend_server {
server 10.1.1.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 10.1.1.2:8080 weight=1 max_fails=2 fail_timeout=30s;
} 
server
{
listen 80;
server_name localhost;
index index.html index.htm;
root  html;

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  2h;
#以域名、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://127.0.0.1;
expires 1d;
}
location ~ /purge(/.*)
{
#设置只允许指定的IP或IP段输入正确的密码才可以清除URL缓存。
auth_basic “Please Insert User And Password”;
auth_basic_user_file /tmp/htpasswd;
allow 127.0.0.1;
allow 10.1.1.0/24;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
........

三、ginx Cache测试:

#启动Nginx服务,/usr/local/nginx/sbin/nginx 

#然后配置好resin端口设置为8080  

#如果需要刷新缓存的url地址为:  http://10.1.1.10/purge/ 

四、如何清除缓存:

清除缓存有两种方法,第一种是直接通过nginx.conf配置文件定义的/purge虚拟目录去清除,第二种方法可以通过shell脚本去批量清除:

附上Shell脚本清空缓存的内容:

#! /bin/sh
#Auto Clean Nginx Cache Shell Scripts
#2013-06-12  wugk
#Define Path
CACHE_DIR=/data/www/proxy_cache_dir/
FILE="$*"
 #To determine whether the input script,If not, then exit 判断脚本是否有输入,没有输入然后退出
if
  [  "$#" -eq "0" ];then
  echo "Please Insert clean Nginx cache File, Example: $0 index.html index.js"
  sleep 2 && exit
fi
  echo "The file : $FILE to be clean nginx Cache ,please waiting ....."
 #Wrap processing for the input file, for grep lookup,对输入的文件进行换行处理,利于grep查找匹配相关内容
for i in `echo $FILE |sed 's//\n/g'`
do
   grep -ra  $i  ${CACHE_DIR}| awk -F':' '{print $1}'  > /tmp/cache_list.txt
    for j in `cat/tmp/cache_list.txt`
  do
    rm  -rf  $j
    echo "$i  $j  is  Deleted Success !"
  done
done

到此这篇关于Nginx+Proxy_cache高速缓存配置的文章就介绍到这了,更多相关Nginx Proxy_cache缓存配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用nginx模拟进行金丝雀发布的方式

    使用nginx模拟进行金丝雀发布的方式

    今天小编就为大家分享一篇关于使用nginx进行金丝雀发布,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • nginx里的rewrite跳转的实现

    nginx里的rewrite跳转的实现

    这篇文章主要介绍了nginx里的rewrite跳转的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Nginx正向代理与反向代理及配置文件全解析

    Nginx正向代理与反向代理及配置文件全解析

    Nginx是一款高性能的开源Web服务器和反向代理服务器,广泛应用于高并发场景,如静态资源托管、负载均衡、API网关等,本文给大家介绍Nginx正向代理与反向代理及配置文件全解析,感兴趣的朋友一起看看吧
    2025-05-05
  • 内网环境nginx配置https访问的过程详解

    内网环境nginx配置https访问的过程详解

    这篇文章主要介绍了内网环境nginx配置https访问,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • nginx配置多个前端项目实现步骤

    nginx配置多个前端项目实现步骤

    本文主要介绍了nginx配置多个前端项目实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 基于Nginx+lua实现简单的XSS攻击拦截

    基于Nginx+lua实现简单的XSS攻击拦截

    WAF即web应用防火墙,Nginx是一个主流的代理服务,除了本身的Nginx日志,作为用户肯定也支持对请求信息进行操作, 很多都是通过在代理服务器上挂载规则特征,实现软件层面的软WAF进行WEB防护,本文主要给大家介绍了Nginx+Lua实现一个简单的XSS攻击拦截,需要的朋友可以参考下
    2024-01-01
  • 一篇文章读懂nginx的gzip功能

    一篇文章读懂nginx的gzip功能

    nginx提供了对文件内容压缩的功能,允许将内容在发送到客户端之前根据具体的策略进行压缩从而节约带宽,下面这篇文章主要给大家介绍了如何通过一篇文章读懂nginx的gzip功能,需要的朋友可以参考下
    2022-05-05
  • Nginx-rtmp实现直播媒体实时流效果

    Nginx-rtmp实现直播媒体实时流效果

    这篇文章主要介绍了Nginx-rtmp实现直播媒体实时流效果,文中给出了总体设计图,为了整合平台,会自建RTMP流媒体服务器和使用云厂商SaaS的RTMP流媒体服务,需要的朋友可以参考下
    2018-08-08
  • Nginx反向代理location和proxy_pass配置规则详细总结

    Nginx反向代理location和proxy_pass配置规则详细总结

    nginx代理访问很好用,但是好多人不清楚location和proxy_pass组合在一起使用时访问的url被代理的url真实地址是什么,下面这篇文章主要给大家介绍了关于Nginx反向代理location和proxy_pass配置规则的相关资料,需要的朋友可以参考下
    2022-09-09
  • NGINX下配置404错误页面的方法分享

    NGINX下配置404错误页面的方法分享

    NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下
    2012-11-11

最新评论