# Nginx 启动 proxy 缓存功能
在 proxy
上编辑主配置文件
vim /etc/nginx/nginx.conf
在 http
模块下添加如下规则:
proxy_cache_path /data/nginx/cache levels=1:1:1 keys_zone=pcache:10m max_size=2g;
1
#指定缓存目为/data/nginx/cache
,目录结构为 3 级,每级 16 个子目录,键表名为 pcache 大小为 10m,缓存最大占用空间为 2g,目录需手动创建
定义完缓存参数后,需要在定义的主机上调用缓存
vim /etc/nginx/conf.d/proxy.conf
server {
listen 80;
server_name www.test.com;
index index.php;
proxy_cache pcache; #调用缓存
proxy_cache_key $request_uri; #把什么当键
proxy_cache_methods GET HEAD; #缓存哪些项
proxy_cache_valid 200 302 10m; #指定200 302响应码的内容缓存10分钟
proxy_cache_valid 404 1m; #指定404响应码的内容缓存1分钟
proxy_cache_use_stale http_502; #允许502响应码的内容使用过期缓存
proxy_set_header X-Real-IP $remote_addr; #将实际的客户端IP发送至后端服务器
add_header X-Via $server_addr; #将代理服务器的IP发至后端服务器
location / {
proxy_pass http://192.168.3.11:80/;
}
location ~* \.(png|jpg|jepg|gif|bmp|html)$ {
proxy_pass http://192.168.3.20:80;
proxy_set_header X-Real-IP $remote_addr; #将实际的客户端IP发送至后端服务器
add_header X-Via $server_addr; #将代理服务器的IP发至后端服务器
}
location ~* \.php$ {
proxy_pass http://192.168.3.11:80;
proxy_set_header X-Real-IP $remote_addr; #将实际的客户端IP发送至后端服务器
add_header X-Via $server_addr; #将代理服务器的IP发至后端服务器
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 用 ab 进行压测,比较开启缓存功能和没有开启缓存
# 1、安装压测工具:httpd-tools
windows 下 ab 的安装和压测 无须安装 apache 服务器,访问下载地址 解压,找到 bin 所在目录,打开命令行即可。
测试命令(拿百度测试):
abs -c 100 -n 2000 https://www.baidu.com/
1
其中有一条返回信息:Requests per second: 71.43 [#/sec] (mean)
可看出每秒 71.43 次的处理量