如何利用nginx做代理缓存浅析

下面我将详细讲解如何利用nginx做代理缓存浅析,包括以下内容:

一、什么是代理缓存?

代理缓存是指代理服务器将之前已经访问过的网页内容缓存下来,当有用户再次访问该网页时,直接从缓存中获取,而不是重新请求原始服务器。这样可以降低对原始服务器的访问压力,提高网页的访问速度。

二、利用nginx做代理缓存的基本流程

  1. 安装nginx:使用apt-get安装命令即可。
sudo apt-get install nginx
  1. 编辑nginx配置文件:打开/etc/nginx/nginx.conf,添加如下代码:
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    ......
    server {
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_cache_bypass $http_pragma;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 3;
            proxy_cache_lock on;
            proxy_cache_key "$scheme$request_method$host$request_uri";
        }
    }
}

其中:
- proxy_cache_path表示缓存路径。
- proxy_cache表示使用的缓存区名称。
- proxy_pass表示要代理的后端服务器地址。
- proxy_cache_bypass表示缓存绕过规则。
- proxy_cache_revalidate表示是否每次访问都重新验证缓存。
- proxy_cache_min_uses表示缓存最少使用次数,如果使用次数不足该值,将不会被缓存。
- proxy_cache_lock表示是否开启缓存锁,避免缓存并发问题。
- proxy_cache_key表示缓存使用的键值。

  1. 重启nginx:使用命令/etc/init.d/nginx restart重启nginx。

三、实例1:利用nginx缓存静态资源

在nginx中缓存静态资源,例如图片、css、js等文件,可以大大提高网页的访问速度。

  1. 在nginx配置文件中添加如下代码:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    ......
    server {
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_cache_bypass $http_pragma;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 3;
            proxy_cache_lock on;
            proxy_cache_key "$scheme$request_method$host$request_uri";
        }
        location /static/ {
            proxy_cache_valid 20m;
            proxy_cache_key "$scheme$request_method$host$request_uri";
            proxy_pass http://backend;
        }
    }
}

其中,location /static/表示缓存静态资源,proxy_cache_valid表示缓存有效期,这里设置为20分钟。

  1. 重启nginx:使用命令/etc/init.d/nginx restart重启nginx。

四、实例2:利用nginx缓存动态页面

在nginx中缓存动态页面,需根据业务逻辑,确定需要缓存的页面,设置缓存键值,并在nginx配置文件中添加相应的规则。

  1. 在nginx配置文件中添加如下代码:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    ......
    server {
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_cache_bypass $http_pragma;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 3;
            proxy_cache_lock on;
            proxy_cache_key "$scheme$request_method$host$request_uri";
        }
        location /cache-me/ {
            add_header X-Cache-Status $upstream_cache_status;
            proxy_cache my_cache;
            proxy_cache_valid 200 2h;
            proxy_cache_key "$scheme$request_method$host$request_uri";
            proxy_pass http://backend;
        }
    }
}

其中,location /cache-me/表示需要缓存的页面,add_header X-Cache-Status $upstream_cache_status表示将缓存状态添加到响应头中,proxy_cache_valid表示缓存有效期,这里设置为2小时。

  1. 重启nginx:使用命令/etc/init.d/nginx restart重启nginx。

以上就是利用nginx做代理缓存的详细攻略,包含缓存静态资源和动态页面的实例说明,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何利用nginx做代理缓存浅析 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • shell脚本多实例部署nginx的详细教程

    下面是关于“shell脚本多实例部署nginx的详细教程”的完整攻略。 准备工作 在开始之前,我们需要先进行一些准备工作。 1. 安装必要的软件 我们需要安装以下软件: nginx supervisor 在 Ubuntu 系统上,可以通过以下命令来安装: sudo apt-get install nginx supervisor 2. 创建目录及配置文件 在…

    Nginx 2023年5月16日
    00
  • Nginx配置进阶(反向代理,缓存,upstream,fastcgi,session绑定:)

    反向代理,缓存,upstream,fastcgi,session绑定: 反向代理:    nginx: 测试1: location / { proxy_pass http://192.168.112.110/; index index.html; } location /froum/ { proxy_pass http://192.168.112.110/b…

    Nginx 2023年4月13日
    00
  • Ubuntu +PHP-fpm + Nginx 访问php界面空白的界面的分析

      系统环境: cat /etc/issue Ubuntu 14.04.5 LTS \n \l   linux 内核: root@xxxx:~# uname -a Linux iZwz9gx93mlg0b8kzke0b9Z 4.4.0-81-generic #104~14.04.1-Ubuntu SMP Wed Jun 14 12:45:52 UTC 201…

    Nginx 2023年4月10日
    00
  • NGINX的ngx_http_geoip2模块以精准禁止特定国家或者地区IP访问

     要求:对网站的信息,比如某个访问节点不想国内或者国外的用户使用,禁止国内或者国外或者精确到某个城市的那种情况。 解决方式:1.Cloudfalre来实现禁止特定国家的ip访问,比较简单,但是需要money!!!                   2.nginx,直接使用geoip模块,现在我们使用最新的ngx_http_geoip2,该模块可以精确到国家…

    2023年4月9日
    00
  • ubuntu环境下nginx源码编译安装

    1、更新系统 sudo apt-get update && sudo apt-get upgrade 2、安装nginx的依赖包  zlib pcre openssl(可以源码安装也可以直接系统安装) sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-…

    Nginx 2023年4月11日
    00
  • 使用logstash配置nginx和tomcat日志统一收集到一台日志服务器

    https://blog.csdn.net/u013619834/article/details/53221383?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source…

    Nginx 2023年4月10日
    00
  • nginx的日志轮转

    nginx的日志轮转:[root@192 ~]# rpm -ql nginx |grep log /etc/logrotate.d/nginx /var/log/nginx [root@192 ~]# vim /etc/logrotate.d/nginx /var/log/nginx/*.log { #指定需要轮转处理的日志文件 daily #日志文件轮转周…

    Nginx 2023年4月11日
    00
  • Nginx 启动脚本/重启脚本代码

    为了方便管理和操作 Nginx,我们可以使用启动脚本和重启脚本来启动和重启 Nginx 服务。 下面是一个 Nginx 启动脚本的示例: #!/bin/bash # 启动 Nginx /usr/local/nginx/sbin/nginx 这个脚本做的事情很简单,就是启动 /usr/local/nginx/sbin/nginx 这个可执行文件,也就是启动 N…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部