如何用Nginx实现对静态网页的本地缓存
- 2019 年 10 月 7 日
- 笔记
在讲到如何加速大规模网站速度时,缓存一定是首当其冲的办法,例如加上CDN、Redis、主从分离等办法。一般在大规模系统中,客户会采用动静分离的办法进行本地的缓存加速。今天我们讲讲客户经常会采用Nginx进行网页加速的配置办法。

一、首先说说加速的原理
用户通过反向代理服务器访问网站,反向代理服务器根据负载均衡策略向真实的服务器发起访问请求并将结果返回给客户。在返回给客户的同时,将静态内容缓存在本地,当其它客户发起同样的需求时,将本地缓存的结果返回给客户,不会再继续将请求传递给真实的服务器。
二、反向代理服务器Nginx的配置办法
1、LVS负载均衡的配置办法详见前面的文章,不再详述。
2、在反向代理服务器ngin.conf进行配置
[root@ecs-maxing1 7d]# vim /usr/local/webserver/nginx/conf/nginx.conf
在http段中增加以下代码
proxy_cache_path /data/nginx/cache_item levels=1:2 keys_zone=cache_item:10m max_size=1000g inactive=7d;
在 location / {中增加以下代码
proxy_cache cache_item;
proxy_cache_valid 200 206 304 301 302 10d;
proxy_cache_key $uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3、检查配置是否成功
[root@ecs-maxing1 7d]# /usr/local/webserver/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
三、反向代理服务器Nginx的缓存目录新建
mkdir /data/nginx/cache_item
四、验证结果
1、重启nginx
./nginx -s stop
./nginx
2、从客户端进行业务访问
我发现不管我怎么刷新,永远不再出现webServer2,应该是缓存生效了。

3、验证将真实服务器关闭服务,是否影响业务
在webServer1、webServer2关闭Nginx服务
./nginx – stop
关闭后仍然业务不会中断。

4、验证服务器的缓存目录中是否有文件存在
我们发现缓存文件已存在。
