- nginx.conf
gzip on;
gzip_types application/xml application/json text/css text/javascript application/javascript;
gzip_vary on;
gzip_comp_level 6;
gzip_min_length 500;
- 設置緩存頭
瀏覽器檢索網頁文件時,會將副本保留在本地磁盤緩存中,這樣,當您再次訪問該頁面時,瀏覽器就不必從服務器重新獲取文件。 每個瀏覽器都使用自己的邏輯來決定何時使用文件的本地副本以及何時在服務器上更改了文件時再次獲取它。 但是,作爲網站所有者,您可以在發送的HTTP響應中設置緩存控制和過期標頭,以提高瀏覽器的緩存行爲的效率。 從長遠來看,您會收到很多不必要的HTTP請求。
首先,您可以爲字體和圖像設置較長的緩存過期時間,這些字體和圖像可能不會經常更改(即使更改,它們通常也會獲得新的文件名)。 在以下示例中,我們指示客戶端瀏覽器將字體和圖像在本地緩存中保留一個月:
location ~* \.(?:jpg|jpeg|gif|png|ico|woff2)$ {
expires 1M;
add_header Cache-Control "public";
}
- Enabling HTTP/2 Protocol Support
生成的協議對網絡更友好,因爲與HTTP / 1.x相比,使用的TCP連接更少。 這意味着與其他流量的競爭減少,連接壽命更長,從而可以更好地利用可用網絡容量。
NGINX 1.9.5和更高版本(以及NGINX Plus R7和更高版本)支持HTTP / 2協議,您所需要做的就是啓用它。 爲此,請在NGINX配置文件的listen指令上包含http2參數:
listen 443 ssl http2;
- 優化日誌
location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|js|css)$ {
access_log off;
}
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;
access_log /var/log/nginx/access.log combined buffer=512k flush=1m;
- 限制指定網址帶寬
如果服務器提供較大的文件(或較小但非常受歡迎的文件,例如表單或報表),則設置客戶端下載文件的最大速度可能很有用。 如果您的站點已經承受了很高的網絡負載,則限制下載速度會留下更多帶寬,以使應用程序的關鍵部分保持響應速度。 這是硬件製造商使用的非常受歡迎的解決方案–您可能需要等待更長的時間才能爲打印機下載3 GB的驅動程序,但是同時有成千上萬的其他人下載您仍然可以下載。 😉
location /download/ {
limit_rate 50k; //per second.
}
- 總結
如果您在網站上遇到有關NGINX的任何問題,我們將爲您提供幫助!在COVID‑19大流行期間,NGINX的員工和社區正在監視Stack Overflow1上的NGINX通道,並儘快答覆問題和要求。
如果您在流行病最前沿的組織工作並有高級需求,則您可能有資格獲得最多五個免費的NGINX Plus許可證以及更高級別的F5 DNS負載平衡器雲服務。有關詳細信息,請參見受COVID‑19影響的網站的免費資源。
還可以查看該博客,瞭解使用NGINX和F5的免費資源來提高網站性能的其他簡便方法的摘要。
參考
8. Help the World by Healing Your NGINX Configuration