尺子,Nginx作为缓存服务,丝袜女郎

一、介绍

Nginx缓存服务原理

缓存服务的类型分为服务端缓存,客户端缓存和署理缓存。

经过Ngi尺子,Nginx作为缓存服务,丝袜女郎nx作缓存服务就是一种署理缓存。

客户端向Nginx建议恳求,此刻Nginx没有缓存,所以此刻Nginx向服务端建议恳求

恳求回数据后缓存至Nginx再回来数据给客户端。

当客户端再次向Nginx建议同一恳求,此刻Nginx有该数据缓存,所以此刻Nginx直接回来数据给客户端

这就是Nginx署理的缓存形式

Nginx作为署理缓存也是要经过Nginx反火车视频集锦向署理装备来完成

关于反向署理的装备在之前的文章中有介绍:Nginx正向署理与反向署理


二、Nginx尺子,Nginx作为缓存服务,丝袜女郎缓存服务的装备语法和简略场景演示

1、proxy_cache

装备缓存

proxy_cache zone|off

装备缓存过期周期

proxy_cache_valid [code…] time

装备缓存的维度

proxy_cache_key string

2、装备反向署理

在server节点下location里经过proxy_pass装备反向署理

server {
location / {
proxy_pass: http://upstreamname;
}
}

3、简略装备场景演示

接下来登录到服务器进行简略的装备演示。

装备需求:

我预备了两台服务器A(112.74.55.9)和B(112.74.33.216)

A作为署理缓存服务器

B作为寄存数据的服务器

接下来演示A运用Nginx作为署理缓存服务缓存B供给的数据

首要咱们登录B服务器装备发动8888端口一个web服务:

server {
listen 8888;
server_name localhost;
location / {
root /opt/app/demo/html;
index test.html test.htm;
}
}

然尺子,Nginx作为缓存服务,丝袜女郎后咱们登录A服务器装备反向署理,署理到B服务器的8888端口:

server {
listen 80;
server_name localhost;
location / {
proxy_pass http://112.74.33.216:8888;
}
}

此刻咱们拜访服务器A(112.74.55.9)

拜访A服务器

客户端拜访到了B服务器上的test.html,此刻即装备好了反向署理

接着咱们回扬书魅影到A服务器装备卡默洛特缓存服务:

proxy_cache_path /opt/app/cache levels=1:2 keys_zone=test_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
serve特种兵闯官场r_name loc福特嘉年华alhost;
location / { #root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://112.74.33.216:8888;
proxy_cache test_cache;
pro赣州天气预报xy_cache_valid 200 304 12h;
add_header Nginx-Cache "$upstream_cache_status";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

这儿尺子,Nginx作为缓存服务,丝袜女郎注释一下的装备的信息

proxy_cache_path这个为装备缓存文件寄存的目录

levels设置在相对于缓存目录的指定级数hash目录中缓存数据。1:2表明两级hash目录。

keys_zone=test_cache:10m界说缓存空间的姓名,10m为空间的巨细

max_size=10g设置缓存空间的巨细约束

inactive=60m60分钟内不活泼的缓存文件整理掉

use_temp_path=off封闭寄存临时文件

proxy_cache test_cache调用界说的zone

proxy_cache_valid 界说回来200或许304的头信息12小时过期

add_header 增加头信息

装备好后咱们reload一下Nginx然后拜访A服务器:

拜访A服务器

此刻枪花能够拜访 并在Network中看到了咱们增加的头信息为HIT射中。

咱们到服务器上检查咱们的缓存目录:

检查缓存目录

咱们发现缓存目录多了一个文件夹,这就是咱们缓存女人妖下来的文件:

检查缓存的文件内容盖亚奥特曼

此刻咱们将该文件删掉,再拜访A服务器发现该文件再次生成,阐明此刻缓存服务现已收效。

接下来咱们进行另一项演示

将B服务器的8888端口的服务装备更改:

server {
listen 8889;
server_name localhost;
loqq红包cation / {
root /opt/app/demo/html;
index test.html test.htm;
}
}

然后reload一下Nginx,此刻就是相当于封闭了8888端口的服务。

然后咱们再次拜访A地址:

再次拜访A服务

此刻发现该服务仍是能够拜访,接下来咱们登录A服务器将缓存服务封闭:

proxy尺子,Nginx作为缓存服务,丝袜女郎_cache_path /opt/app/cache levels=1:2 keys_zone=test_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
server_name localhost马云儿子;
location / { dinasour#root /usr/share/nginx/html;
尺子,Nginx作为缓存服务,丝袜女郎#index index.html index.htm;
proxy_pass http://112.74.33.216:8888;
proxy_cache off;
proxy_cache_valid 200 304 12h;
add_hea李灿琛der Nginx-Cache "$upstream_cache_status";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

将p战队姓名roxy_cache设置为off,封闭了A服务器的缓存服务尺子,Nginx作为缓存服务,丝袜女郎,reload了Nginx后咱们再来拜访A服务:

从头拜访A服务

此刻无法正常获取到咱们料想的数据

这个演示了咱们拜访署理服务器A后

A将B的数据缓存到了A下

所以当咱们封闭了B的服务后咱们依然能够拜访拿到B缓存在A的数据

当咱们封闭了缓存服务后拜访A

则是去拜访了封闭服务后的B

此刻便无法拜访到咱们开端想要的数据

以上就是Nginx作为缓存服务的简略场景演示。


三、让部分恳求不缓存

上面演示了Nginx缓存服务的简略场景,但是在一些场景中并不是一切数据咱们都需求缓存的,接下来咱们装备部分恳求的不缓存。

咱们在B服务器/opt/app/demo/html下增加了一个nocache.html

hello!this is龙江航空公司官网 nocache.html,tangll add it.

咱们现在需求让这个页面不缓存咱们能够在A服务器上装备如下:

proxy_cache_path /opt/app/cache levels=1:2 keys_zone=test_cache:10m max_size=1路琳婕0g inactive=60m use_temp_path=off;
server {
listen 80;
server_name localhost;
location / { #假如url中匹配ncrossoverocache则nocache参数设置为1
if ($request_uri ~ ^/(nocache)) {
set $no黄豆豆cache 1;
}
proxy_pass http://112.74.33.216:8888;
proxy_cache test_cache;
proxy_cache_valid 200 304 12h;
proxy_no_cache $nocache;#设置nocache参数
add_header Nginx-Cache "$upstream_cache_status";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html 酸菜的做法{
root /usr/share/nginx/html;
}
}

这儿proxy_no_cache就是作为装备不缓存的参数

此刻咱们将缓存目录下的缓存文件rm -rf 删除去

作者:唐龙隆

链接:https://www.jianshu.com/p/2a33420f7f3f

  • 最新留言