初识nginx反向代理和缓存机制
实现的需求图:
一、实现反向代理
1、安装nginx,两台服务器都需要安装
1)安装依赖包
yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel pcre-devel openssl openssl-devel
2)下载nginx
wget http://nginx.org/download/nginx-1.8.0.tar.gz
3)解压编译
tar -zxvf nginx-1.8..tar.gz
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make
make install
2、修改配置文件
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout ; server {
listen ;
server_name localhost;
} location / {
proxy_pass http://192.168.0.37/;
}
}
2)真实数据服务器:改路径即可vim /usr/local/nginx/conf/nginx.conf
location /{
root /data;
index index.html index.php;
}
mkdir /data
echo "I am realy server" >/data/index.html
3、两台机器上启动nginx
/usr/local/nginx/sbin/nginx
4、测试

二、缓存机制
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout ; proxy_cache_path /usr/local/nginx/cache levels=: keys_zone=cache_one:500m inactive=1d max_size=30g; server {
listen ;
server_name localhost;
} location / {
proxy_cache cache_one;
proxy_cache_valid 24h;
proxy_pass http://192.168.0.37/;
}
}
2:查看他的进程多了缓存
查看一下具体的内容:
3)然后把真实数据服务器的nginx给停掉,再一次访问,还是可以得到
4)然后把代理服务器的缓存数据给删除,再一次访问,得到结果:说明从缓存没有找到,然后代理转发到真是的服务器也没找到,这就说明了第二次访问的是缓存数据的内容
第二次再去访问,还是监听这个80端口,可以发现tcpdump没有任何数据,说明它直接从缓存里读取了,你可以把缓存删了,再次在客户端访问,可以看到它又有数据了
基于proxy_store的缓存
1:修改反向代理的配置文件
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout ; server {
listen ;
server_name localhost;
} location / {
root "/web1";
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path "/web1";
if ( !-f $request_filename )
{
proxy_pass http://192.168.0.37;
}
}
}
创建文件夹:
mkdir /web1
2:真实数据服务器的配置文件
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout ; server {
listen ;
server_name localhost;
} root /data; }

在代理服务器的缓存目录下可以看到缓存到的数据和真实数据服务器的目录结构一样:(这个与proxy cache不一样)
把代理缓存的a.html改一下:
再次访问的时候,返回的数据如下,说明它第二次访问的是缓存
proxy store 与proxy cache的区别:proxy store不提供缓存过期更新,内存索引建立等功能,缓存文件一直会保存在本地磁盘中。
注:学习《nginx高性能Web服务器详解》的时候总结
初识nginx反向代理和缓存机制的更多相关文章
- Nginx 反向代理并缓存及缓存清除
Nginx 反向代理并缓存及缓存清除 原文地址:http://www.cnblogs.com/caoguo/p/5012447.html 一. Nginx 配置 #user nobody; worke ...
- Nginx 反向代理可以缓存 HTTP POST 请求页面吗?
摘要: Nginx 反向代理可以缓存 HTTP POST 请求页面吗? 2017-09-05 景峯 Netkiller 本文节选自<Netkiller Web 手札> 作者:netkil ...
- nginx反向代理、缓存及压缩配置实战
一.反向代理配置 (原文链接:http://www.studyshare.cn/blog/details/1155/0 ) 准备:两个项目分别使用端口8080,8081,只有一个备案域名,配置如下 ...
- 项目实战1—LNMP的搭建、nginx反向代理和缓存等的实现
实战一:搭建lnmp及类小米等商业网站的实现 环境:关闭防火墙,selinux 1.安装包,开启服务 yum -y install nginx mariadb-server php-fpm php-m ...
- 动态PHP电商网站伪静态的 Nginx反向代理Cache缓存终极设置
转自: http://www.ttlsa.com/nginx/dynamic-php-nginx-cache/
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...
- 6、nginx的反向代理及缓存功能
nginx模块的应用 ngx_http_proxy_module nginx 反向代理模块: http://nginx.org/en/docs/http/ngx_http_proxy_module. ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解
大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...
随机推荐
- MATLAB绘图功能(2) 二维底层绘图修饰
文末源代码 部分源代码 % x=0:0.1:2*pi; % y=sin(x); % plot(x,y); % line对象 % h = line([-pi:0.01:pi],sin([-pi:0. ...
- HDU - 1061-快速幂签到题
快速幂百度百科:快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. HDU - 1061 代码实现如下: import java.util.Sc ...
- 在线自动创建springboot工程
https://start.spring.io/
- 第5天(半天)【shell编程初步、grep及正则表达式】
第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...
- Java入门自学笔记
一.变量 变量需要一个名字,变量的名字是一种“标识符”,意思是它是用来识别这个和那个的不同的名字. 标识符的构造规则:只能有字母.数字和下划线组成,数字不能在首位,java的关键字(保留字)不可以用做 ...
- LCA最近公共祖先模板代码
vector模拟邻接表: #include<iostream> #include<cstdio> #include<cstring> #include<cma ...
- centos打开matlab的正确姿势
进入usr/local/MATLAB/R2015b/bin ./matlab
- CHECK约束表达式
1.性别:只能填写'男'和'女' (字段名='男'or 字段名='女') 注意:单引号里的值可以为其他任何字 2.规定密码长度不能小于6位数 (len([字段名])>(5)) 3.例:成绩在 ...
- java中有关初始化的问题
在类的内部,变量定义的先后顺序决定了初始化顺序,即使变量定义分散在方法定义之外,它们依旧会在任何方法(包括构造器)被调用之前得到初始化 其中初始化的顺序先是静态对象,其后是非静态对象 例如: clas ...
- http/ftp等的URL匹配正则表达式 ZT
网上流传着多种匹配URL的正则表达式版本,但我经过试验,最好用的还是从stackoverflow上查到的: (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_| ...