Nginx使用教程(七):使用Nginx缓存之proxy cache
定义缓存目录
<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表示在高速缓存中找到缓存,但它已过期,并已转发到后端。
Nginx使用教程(七):使用Nginx缓存之proxy cache的更多相关文章
- Nginx详解七:Nginx基础篇之Nginx官方模块
Nginx官方模块 --with-http_stub_status_module:Nginx的客户端状态,用于监控连接的信息,配置语法如下:配置语法:stub_status;默认状态:-配置方法:se ...
- Nginx使用教程(一):Nginx编译参数详解
从源代码编译应用程序时通常有三个步骤:配置,编译和安装. 配置步骤允许您选择一些在程序编译后无法编辑的选项,因为它对程序二进制文件有直接影响. 因此,这是一个非常重要的阶段,你需要仔细选择,如果你想避 ...
- Nginx使用教程(三):Nginx配置性能优化之I/O和TCP配置
配置Nginx I/O <br\> Sendfile 当应用程序传输文件时,内核首先缓冲数据,然后将数据发送到应用程序缓冲区. 应用程序反过来将数据发送到目的地. Sendfile方法是一 ...
- Nginx使用教程(二):Nginx配置性能优化之worker配置
配置Nginx workers <br\>NGINX根据指定的配置运行固定数量的工作进程. 这些工作进程负责处理所有处理. 在下面的章节中,我们将调整NGINX worker参数. 这些参 ...
- 七、Nginx学习笔记七Nginx的Web缓存服务
user www; worker_processes 1; error_log /usr/local/nginx/logs/error.log crit; pid /usr/local/nginx/l ...
- Nginx反向代理 负载均衡 页面缓存 URL重写及读写分离
大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...
- nginx的反向代理功能和缓存功能
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- [Linux] 一个前端必会的 Nginx 免费教程-在虚拟机中用deepin测试
原文技术胖的 nginx 技术胖 专注于前端开发 deepin Linux Deepin 是一个基于 DEB 包管理的一个独立操作系统,和那些 Ubuntu(下个大版本是基于 debian 开发) 的 ...
- Nginx入门教程(转)
原文:https://www.cnblogs.com/qdhxhz/p/8910174.html nginx入门教程 一.概述 什么是nginx? Nginx (engine x) 是一款轻 ...
随机推荐
- [转]【Angular4】基础(六):HTTP模块
本文转自:https://blog.csdn.net/u013451157/article/details/79519719 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- 【转载】阿里云ECS服务器监控资源使用情况
在阿里云Ecs服务器运维过程中,无论是Centos系统还是Windows系统,有时候我们需要监控分析最新的服务器资源利用率等运行情况,例如最近3个小时CPU使用率情况.内存使用率.网络流入带宽.网络流 ...
- c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错
如果一个对象的值为null,那么它调用扩展方法时会报错吗? Person p = null ; p.ExtendMethod(); 上述代码出现的情况不会报错,刚开始遇到这种情况时很纳闷,就去问了大牛 ...
- Cookie 用法
//Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端),与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的是关于网站相关的文本字符串数据.Cookie的存储 ...
- T-SQL基础(三)之子查询与表表达式
子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询.嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用. 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询.自包含 ...
- SpringBoot 之基础学习篇.
一.概念简介 SpringBoot 的关键词是“约定俗成”,它根据长久以来的 Spring 开发配置经验,整理出一套适用.普遍.大家都认可的配置方案.所以 SpringBoot 的学习过程中心态一定要 ...
- MessageChannel 消息通道
一.初识 MessageChannel 对象 通过构造函数 MessageChannel() 可以创建一个消息通道,实例化的对象会继承两个属性:port1 和 port2 port1 和 port2 ...
- angular 时间戳转换(星期过滤器)
{{(value.time+'000' | date:'yyyy-MM-dd HH:mm:ss') : '/'}} .filter('getWeek', function() { return fun ...
- JS之console.log详解以及兄弟姐们邻居方法扩展
console.log() 基本用法 console.log,前端常用它来调试分析代码,你可以在任何的js代码中调用console.log(),然后你就可以在浏览器控制台看到你刚才打印的常量,变量,数 ...
- meta、link、script的常用写法
meta 设置编码格式 <meta charset='utf-8'> 设置关键字 <meta name="keywords" content="音乐 播 ...