如何用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、驗證服務器的緩存目錄中是否有文件存在
我們發現緩存文件已存在。
