定义缓存目录

<br\>
使用您喜欢的文本编辑器打开/etc/nginx/nginx.conf,并在http {区域加入:

  1. proxy_cache_path  /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
  2. proxy_temp_path /var/www/cache/tmp;
  3. real_ip_header X-Forwarded-For;

前2行创建一个缓存目录。 真正的X-Forwarded-For头指示Nginx将原始IP地址转发到后端(端口8080),否则所有流量似乎都来自127.0.0.1。

应用缓存

<br\>
接下来,我们需要在/etc/nginx/sites-available/website下创建虚拟主机

  1. server {
  2. listen 80;
  3. server_name _;
  4. server_tokens off;
  5. location / {
  6. proxy_pass              http://127.0.0.1:8080/;
  7. proxy_set_header        Host                    $host;
  8. proxy_set_header        X-Real-IP               $remote_addr;
  9. proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
  10. proxy_cache  my-cache;
  11. proxy_cache_valid 3s;
  12. proxy_no_cache $cookie_PHPSESSID;
  13. proxy_cache_bypass $cookie_PHPSESSID;
  14. proxy_cache_key         "$scheme$host$request_uri";
  15. add_header X-Cache $upstream_cache_status;
  16. }
  17. }
  18. server {
  19. listen   8080;
  20. server_name _;
  21. root /var/www/your_document_root/;
  22. index index.php index.html index.htm;
  23. server_tokens off;
  24. location ~ \.php$ {
  25. try_files $uri /index.php;
  26. fastcgi_pass 127.0.0.1:9000;
  27. fastcgi_index index.php;
  28. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  29. include /etc/nginx/fastcgi_params;
  30. }
  31. location ~ /\.ht {
  32. deny all;
  33. }
  34. }

然后通过执行以下操作启用它:

  1. cd
  2. ln -s /etc/nginx/sites-available/website /etc/nginx/sites-enabled/website
  3. /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表示在高速缓存中找到缓存,但它已过期,并已转发到后端。

转载于:https://www.cnblogs.com/felixzh/p/6283975.html

Nginx使用教程(七):使用Nginx缓存之proxy cache相关推荐

  1. linux系统nginx安装教程,Linux下Nginx安装教程

    Linux下Nginx安装教程分享,具体内容如下 1.安装编译文件及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl op ...

  2. nginx学习笔记七(nginx HTTP框架的执行流程)

    之前已经介绍过nginx的事件框架.那么,对于client发出的一个http的请求,nginx的http框架是如何一步步解析这个http请求?http框架又是如何和之前介绍过得epoll事件模块结合起 ...

  3. ngnix mysql 缓存清除_利用Proxy Cache使Nginx对静态资源进行缓存

    前言 Nginx是高性能的HTTP服务器,通过Proxy Cache可以使其对静态资源进行缓存.其原理就是把静态资源按照一定的规则存在本地硬盘,并且会在内存中缓存常用的资源,从而加快静态资源的响应. ...

  4. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

    作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. ...

  5. CentOS8安装nginx详细教程

    Nginx发音为" engine x",是一种开源的高性能HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载.它可用作HTTP和非HTTP服务器的独立Web服务 ...

  6. 《Nginx实战教程》专栏介绍

    欢迎来到<Nginx实战教程>专栏!本专栏致力于为广大开发者和运维人员提供全面的Nginx学习资料和实践经验.在这里,你将深入了解Nginx的基本原理,掌握配置和优化技巧,以及在实际项目中 ...

  7. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

  8. nginx mysql 安装_CentOS7下安装Nginx+MySQL教程

    首先我们需要安装nginx的yum源 警告:/var/tmp/rpm-tmp.aRXWtf: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY 准备中...  ...

  9. 最全面 Nginx 入门教程 + 常用配置解析

    http://blog.csdn.net/shootyou/article/details/6093562 个人整理资料,转帖注明出处,谢谢~ Nginx介绍和安装 一个简单的配置文件 模块介绍 常用 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记9 直方图与匹配(三)直方图对比
  2. 微信公众号网页获取用户信息
  3. jtabel 遍历_Swing中经常会遇到的若干问题——JTable(持续更新) | 学步园
  4. C语言函数集(十二)
  5. Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向
  6. pandas 按字符串肚脐眼 读取数据_十分钟学习pandas! pandas常用操作总结!
  7. Redis开发:发布/订阅消息示例
  8. 【DirectX12龙书机翻整理】第8章 光照
  9. C语言实现自组织映射kohone/trace算法(附完整源码)
  10. function “printf“ declared implicitly
  11. 软件开发重要性_在软件开发中考虑时间的重要性
  12. 【测试】一步步教你写一份优秀的软件测试简历
  13. link st 量产工具_STM32 ST-LINK Utility介绍、下载、安装、使用方法
  14. Python 爬虫案例(一)
  15. 【echart】常用术语
  16. 自动化测试工程师简历模板
  17. SCHMERSAL AZM 161 Z ST1-AS PT西溪,且留下
  18. python爬虫模拟登陆
  19. 2D 动画调整 position 产生的位移问题
  20. 【数学建模】灰色关联(Matlab代码实现)

热门文章

  1. 谷歌、DeepMind提出高效Transformer评估基准
  2. 北大校友的算法被玩出新高度,AI自动化在线抠图
  3. 毫米波雷达障碍物检测算法介绍
  4. ROS在类中发布和接受消息(标准消息)
  5. MYSQL8 关键字(官方)
  6. VGA、DVI、HDMI区别
  7. python之路——面向对象进阶
  8. 【转】通用sqlserver分页存储过程
  9. 排序 之 快排、归并、插入 - 时间复杂度----掌握思想和过程
  10. jQuery实现购物车多物品数量的加减+总价计算