Nginx实现缓存

打印 上一主题 下一主题

主题 1009|帖子 1009|积分 3027

目录
资源列表
基础环境
关闭防火墙
关闭内核安全机制
修改主机名
一、安装httpd
二、安装nginx
准备nginx源
设置nginx
启动
部分页面不缓存(可选)
测试
在client节点请求nginx
关闭httpd请求nginx

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

操作系统设置主机名IPCentOS7.3.16112C4Gnginx192.168.207.131CentOS7.3.16112C4Ghttpd192.168.207.165CentOS7.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
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表