本文樣本假設後端伺服器IP為192.168.1.10,前端Proxy 伺服器IP為192.168.1.5。
(如果沒有多台伺服器,也可以用內網IP或者nginx監聽不同的連接埠來實現同樣的效果)
1、首先我們要確認nginx的gzip_static模組已經被編譯進去:
nginx -V
如果該命令輸出有--with-http_gzip_static_module,則說明nginx支援gzip_static模組。如果沒有,需要加上 --with-http_gzip_static_module該參數重新編譯nginx。
2、配置nginx
| 代碼如下 |
複製代碼 |
location ~ .html$ { gzip_static on; }
|
3、配置Proxy 伺服器的nginx
| 代碼如下 |
複製代碼 |
server { listen 80; server_name YOUR_DOMAIN.com; location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding 'gzip'; proxy_pass http://192.168.1.10; } }
|
4、配置完成後,前端的Proxy 伺服器和後端的nginx重啟以便配置生效:
| 代碼如下 |
複製代碼 |
nginx -s reload
|
5、測試是否生效:
後端伺服器在網站目錄裡上傳一個test.html檔案,然後執行:
完成後會產生test.html.gz檔案,同時test.html檔案會被刪除。
然後開啟瀏覽器訪問前端的nginx:
| 代碼如下 |
複製代碼 |
http://192.168.1.5/test.html |
如果頁面正常顯示,則說明配置成功。我們同時要驗證一下在瀏覽器不支援gzip的情況下,是否能正常顯示頁面。下面我們採用telnet工具進行測試:
| 代碼如下 |
複製代碼 |
telnet 192.168.1.5 80 GET /test.html HTTP/1.0 |
注意:GET那一行最後連續兩個斷行符號。
如果正常輸出了明文的HTML代碼,說明配置是沒有問題的。
6、配置成功之後,即可對自己的應用進行調整,產生html靜態檔案時,調用gzip命令產生gz壓縮檔,這樣大大減少靜態檔案佔用硬碟空間的情況,同時也會減少每次進行gzip壓縮所消耗的CPU資源。