设为首页 收藏本站
查看: 542|回复: 0

[经验分享] Nginx使用教程(七):使用Nginx缓存之proxy cache

[复制链接]
发表于 2017-12-23 09:19:59 | 显示全部楼层 |阅读模式
定义缓存目录
  <br\>
  使用您喜欢的文本编辑器打开/etc/nginx/nginx.conf,并在http {区域加入:

  • proxy_cache_path  /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;

  • proxy_temp_path /var/www/cache/tmp;

  • real_ip_header X-Forwarded-For;
  前2行创建一个缓存目录。 真正的X-Forwarded-For头指示Nginx将原始IP地址转发到后端(端口8080),否则所有流量似乎都来自127.0.0.1。
应用缓存
  <br\>
  接下来,我们需要在/etc/nginx/sites-available/website下创建虚拟主机

  • server {
  •         listen 80;
  •         server_name _;
  •         server_tokens off;
  •         location / {
  •                 proxy_pass              http://127.0.0.1:8080/;
  •                 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_cache  my-cache;
  •                 proxy_cache_valid 3s;
  •                 proxy_no_cache $cookie_PHPSESSID;
  •                 proxy_cache_bypass $cookie_PHPSESSID;
  •                 proxy_cache_key         "$scheme$host$request_uri";
  •                 add_header X-Cache $upstream_cache_status;
  •         }
  • }

  • server {
  •         listen   8080;
  •         server_name _;
  •         root /var/www/your_document_root/;
  •         index index.php index.html index.htm;
  •         server_tokens off;
  •         location ~ \.php$ {
  •                 try_files $uri /index.php;
  •                 fastcgi_pass 127.0.0.1:9000;
  •                 fastcgi_index index.php;
  •                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  •                 include /etc/nginx/fastcgi_params;
  •         }
  •         location ~ /\.ht {
  •                 deny all;
  •         }
  • }
  然后通过执行以下操作启用它:

  • cd
  • ln -s /etc/nginx/sites-available/website /etc/nginx/sites-enabled/website
  • /etc/init.d/nginx restart
  第一个服务器定义是在端口80上运行的反向缓存代理。
  第二个服务器定义用于后端(典型的nginx配置,端口8080,而不是80)。
proxy相关指令介绍
  <br\>
  proxy_pass http://127.0.0.1:8080/将流量转发到端口8080,Nginx后端位于该端口
  proxy_cache my-cache定义要使用的高速缓存,这里是my-cache,我们之前在nginx.conf中添加的
  proxy_cache_valid 3s将缓存时间设置为3秒。 在确定缓存到期之前的秒数(清除缓存)。 此数字可以根据您网站上的内容的新鲜度而增加或减少。
  proxy_no_cache $ cookie_PHPSESSID禁止反向缓存代理缓存具有PHPSESSID Cookie的请求。 否则,您的登录用户页面将被缓存并显示给其他人。 如果您使用的Cookie框架使用Cookie的默认PHPSESSID以外的Cookie名称,请务必替换。
  proxy_cache_bypass $ cookie_PHPSESSID指示代理绕过缓存,并且如果传入请求包含PHPSESSID Cookie,则将请求转发到后端。 否则,你最终会显示登录的用户,登出的版本(从缓存提供)。
  proxy_cache_key “$scheme$host$request_uri”定义用于缓存的键。 以下使用$ request_uri,它适合于根据url存储不同版本的页面(不同的GET参数,不同的内容)。
  add_header X-Cache $ upstream_cache_status可用于调试,返回HIT,BYPASS或EXPIRED,具体取决于请求是从高速缓存(HIT)提供还是从后端(MISS)提供.EXPIRED表示在高速缓存中找到缓存,但它已过期,并已转发到后端。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-427077-1-1.html 上篇帖子: 使用Nginx实现灰度发布 下篇帖子: nginx 解决css、js请求路径无法加载问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表