• Nginx实现缓存


    目录

    资源列表

    基础环境

    关闭防火墙

    关闭内核安全机制

    修改主机名

    一、安装httpd

    二、安装nginx

    准备nginx源

    配置nginx

    启动

    部分页面不缓存(可选)

    测试

    在client节点请求nginx

    关闭httpd请求nginx


            本文详细记录了nginx实现缓存的配置步骤,nginx是一个非常优秀的web服务,同时还具有正向代理,反向代理,负载均衡以及缓存等功能。

    资源列表

    操作系统配置主机名IP
    CentOS7.3.16112C4Gnginx192.168.207.131
    CentOS7.3.16112C4Ghttpd192.168.207.165
    CentOS7.3.16112C4Gclient192.168.207.166

    基础环境

    关闭防火墙

    1. systemctl stop firewalld
    2. systemctl disable firewalld

    关闭内核安全机制

    1. setenforce 0
    2. sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

    修改主机名

    1. hostnamectl set-hostname nginx
    2. hostnamectl set-hostname httpd
    3. hostnamectl set-hostname client

    一、安装httpd

    1. yum -y install httpd
    2. echo httpd > /var/www/html/index.html
    3. systemctl start httpd

    二、安装nginx

    准备nginx源

    1. cat > /etc/yum.repos.d/nginx.repo << 'EOF'
    2. [nginx]
    3. name=nginx repo
    4. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    5. gpgcheck=0
    6. enabled=1
    7. EOF
    8. yum -y install nginx

    配置nginx

    1. # 在/etc/nginx/nginx.conf的http段中添加
    2. upstream node {
    3.   server 192.168.207.166:80;
    4. }
    5. proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;
    6. # 在/etc/nginx/conf.d/default.conf的server段下的 location / 中添加
    7.   location / {
    8.       root   /usr/share/nginx/html;
    9.       index index.html index.htm;
    10.       proxy_pass http://node;
    11.       proxy_cache cache;
    12.       proxy_cache_valid   200 304 12h;
    13.       proxy_cache_valid   any 10m;
    14.       add_header Nginx-Cache "$upstream_cache_status";
    15.       proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    16.   }
    • 配置详解

    1. proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;
    2.    #proxy_cache   //存放缓存临时文件
    3.    #levels         //按照两层目录分级
    4.    #keys_zone     //开辟空间名,10m:开辟空间大小,1m可存放8000key
    5.    #max_size       //控制最大大小,超过后Nginx会启用淘汰规则
    6.    #inactive       //60分钟没有被访问缓存会被清理
    7.    #use_temp_path //临时文件,会影响性能,建议关闭
    8.    
    9. proxy_cache cache;
    10. proxy_cache_valid   200 304 12h;
    11. proxy_cache_valid   any 10m;
    12. add_header Nginx-Cache "$upstream_cache_status";
    13. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    14.    #proxy_cache           //开启缓存
    15.    #proxy_cache_valid     //状态码200|304的过期为12h,其余状态码10分钟过期
    16.    #proxy_cache_key       //缓存key
    17.    #add_header             //增加头信息,观察客户端respoce是否命中
    18.    #proxy_next_upstream   //出现502-504或错误,会跳过此台服务器访问下一台服务器

    启动

    1. nginx -t
    2. systemctl start nginx

    部分页面不缓存(可选)

    1. if ($request_uri ~ ^/(static|login|register|password)) {
    2.    set $cookie_nocache 1;
    3. }
    4. location / {
    5.   proxy_pass http://node;
    6.   proxy_cache     cache;
    7.   proxy_cache_valid       200 304 12h;
    8.   proxy_cache_valid       any     10m;
    9.   add_header     Nginx-Cache     "$upstream_cache_status";
    10.   proxy_next_upstream     error timeout invalid_header http_500 http_502 http_503 http_504;
    11.   proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
    12.   proxy_no_cache $http_pargma $http_authorization;
    13. }

    测试

    在client节点请求nginx

    1. curl 192.168.207.131
    2. httpd

    关闭httpd请求nginx

    1. curl 192.168.207.131
    2. httpd

  • 相关阅读:
    Windows/Ubuntu双系统给Ubuntu磁盘扩容核心步骤
    22.支持向量机—高斯核函数
    全局变量和局部变量的区别 C++
    ChatGPT 学习笔记 - 1
    浅谈机器学习中的概率模型
    C++数据结构,三万字详解(强烈建议收藏)
    【无标题】
    基于Java实现的武汉地铁模拟系统
    Visual Studio 2022安装教程
    前端面试:原型和原型链
  • 原文地址:https://blog.csdn.net/qq_33906471/article/details/139409513