nginx前端加載訪問速度優化
1. gzip壓縮
# gzip config
gzip on;
gzip_min_Length 1k;
gzip_comp_level 9;
gzip_types text/plain application/Javascript application/x-Javascript text/css application/xml text/Javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable “MSIE [1-6]\.”;
釋義如下: 這是用來配置 gzip 壓縮的。gzip 是一種用于壓縮文件的壓縮程序,在 Web 開發中被廣泛應用,主要用于壓縮 Web 應用的靜態資源以減少傳輸流量,提高網頁的加載速度。
- gzip on;:啟用 gzip 壓縮。
- gzip_min_length 1k;:指定壓縮文件的最小長度,只有文件大小超過 1KB 時才啟用壓縮。
- gzip_comp_level 9;:指定壓縮級別。級別越高,壓縮效率越高,但會占用更多的 CPU 資源和時間。一般建議將級別設置為 6-9 之間。(這里根據你的服務器來定)
- gzip_types:指定需要壓縮的文件類型。在這里,配置文件將 text、application 和 image 類型的文件壓縮。一般來說,壓縮的文件類型應該是純文本格式或可壓縮的二進制文件。
- gzip_vary on;:使用 Vary 頭來指示代理服務器或瀏覽器緩存已壓縮的版本。這樣,更高效的壓縮格式可以分別緩存,并在請求時正確地使用。
- gzip_disable “MSIE [1-6]\.”;:禁用 gzip 壓縮的瀏覽器,例如早期版本的 internet Explorer。這些瀏覽器對于壓縮格式的支持很差,因此禁用壓縮可以避免出現問題。(這一步避免版本低瀏覽器訪問網頁出現問題)
2. 優化 keepalive 連接
keepalive_timeout 65;
keepalive_requests 100;
釋義如下:
這兩個配置參數是用來設置服務器的 keepalive 功能的。
- keepalive_timeout: 這個參數指定了一個已經建立的連接在沒有活動(無數據傳輸)時保持的時間長度。對于每個連接,如果超過 keepalive_timeout 時間沒有數據傳輸,則服務器會關閉該連接。默認值通常為 75 秒。較小的值可以確保連接及時釋放,但會增加連接關閉和重新建立的頻率;較大的值可以減少連接關閉和重新建立的頻率,但可能會導致長時間的閑置連接占用服務器資源。
- keepalive_requests: 這個參數定義了一個 keepalive 連接上最多能夠處理的請求次數。當一個 keepalive 連接處理了 keepalive_requests 次請求之后,服務器會關閉該連接。默認值通常為 100。較大的值可以減少連接的關閉和重新建立,但在某些情況下可能會占用過多的服務器資源。
3.配置緩存
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
釋義如下:
- /path/to/cache 是指定的緩存存儲路徑。
- levels=1:2 指定了文件系統中緩存目錄的層級結構,這里是一級目錄和兩級子目錄。
- keys_zone=my_cache:10m 定義了一個名為 my_cache 的緩存區域,大小為 10 兆字節。
- max_size=10g 指定了緩存最大可使用的空間大小為 10 GB。
- inactive=60m 表示緩存文件在60m時間內沒有被訪問時,會被視為不活動,并有可能被清理掉。
注意事項
對 nginx 的配置更改可能需要 root 權限,請確保你有足夠的權限來修改相關配置文件。此外,再次強調,修改配置文件前請備份文件以防止意外情況發生,還有就是nginx需要重啟生效需要注意。