nVisual部署之nginx配置說明

nwvdi耐威迪 發佈 2022-12-01T14:39:58.956796+00:00

Nginx 是一個高性能的HTTP和反向代理web伺服器,因此nvisual在部署前端包時便採用了它作為伺服器,版本使用1.14.1以上。在默認的配置下,還需要向nginx各模塊添加配置才能達到生產需要。

nginx 是一個高性能的HTTP和反向代理web伺服器,因此nvisual在部署前端包時便採用了它作為伺服器,版本使用1.14.1以上。在默認的配置下,還需要向nginx各模塊添加配置才能達到生產需要。

接下來,從http模塊開始,再到serverlocation模塊,分別說明一下各配置的參數。

一、http模塊

1.sendfile,用來開啟高效的文件傳輸模式,語法sendfile on |off,默認值off。

2.tcp_nopush,須在sendfile打開的狀態下才會生效,主要是用來提升網絡包的傳輸效率,語法tcp_nopush on|off,默認值off。

3.tcp_nodelay,須在keep-alive連接開啟的情況下才生效,來提高網絡包傳輸的實時性,語法tcp_nodelay on|off,默認值off。

4.keepalive_timeout,來指定 KeepAlive 的超時時間,若將它設置為 0,就禁止了 keepalive連接。

5.client_max_body_size,限制請求體的大小,在這裡主要指定上傳文件的大小限制,默認1m,如果很大,還要適當調整上傳超時時間,如果超過設定大小,則返回413。

6.client_body_timeout,讀取請求實體的超時時間,在這裡主要是應用上傳文件的時間限制,如果超時,則返回413。

7.include /etc/nginx/mime.types,文件擴展名與文件類型映射表,如果不加載則會出現異常,例如css文件無法解析,頁面沒有相應的樣式。

二、server模塊

1.gzip,用於開啟或者關閉gzip功能,語法gzip on|off,默認off。

2.gzip_comp_level,用於設置Gzip壓縮程度,級別從1-9,1表示壓縮程度最低,效率最高,9剛好相反,壓縮程度最高,但是效率最低最費時間,所以使用時,注意並不是級別越高越好。建議設置在中間值5/6即可。

3.gzip_min_length,進行壓縮響應頁面的最小長度,響應頁面的大小可以通過頭信息中的Content-Length來獲取,如果設置的值大於content-length將不進行壓縮。

4.gzip_types,所選擇的值可以從mime.types文件中進行查找,有些類型比如圖片、視頻等本身壓縮了也節省不了多少空間,反而會浪費CPU資源,所以在選擇壓縮的時候需要注意是否有必要進行壓縮。

5.gzip_vary,用於設置使用Gzip進行壓縮發送是否攜帶「Vary:Accept-Encoding」頭域的響應頭部。主要是告訴接收方,所發送的數據經過了Gzip壓縮處理。

6.gzip_buffers,用於處理請求壓縮的緩衝區數量和大小。

7.gzip_http_version,針對不同的HTTP協議版本,可以選擇性地開啟和關閉Gzip功能,該指令是指定使用Gzip的HTTP最低版本,該指令一般採用默認值即可,默認值是1.1。

8.proxy_buffering,設置是否開啟proxybuffer功能,參數的值為on或者off。如果這個設置為off,那麼proxy_buffersproxy_busy_buffers_size這兩個指令將會失效,但是無論proxy_buffering是否開啟,proxy_buffer_size都是生效的。

9.proxy_buffer_size,用來設置一個特殊的buffer大小,從被代理伺服器(C)上獲取到的第一部分響應數據內容到代理伺服器(B)上,通常是header,就存到了這個buffer中,如果該參數設置太小,會出現502錯誤碼,這是因為這部分buffer不夠存儲header信息。建議設置為4k。

10.proxy_buffers,這個參數設置存儲被代理伺服器上的數據所占用的buffer的個數和每個buffer的大小,所有buffer的大小為這兩個數字的乘積。

11.proxy_busy_buffer_size,在所有的buffer里,我們需要規定一部分buffer把自己存的數據傳給A,這部分buffer就叫做busy_buffer,proxy_busy_buffer_size參數用來設置處於busy狀態的buffer有多大。對於B上buffer里的數據何時傳輸給A,

(1)如果完整數據大小小於busy_buffer大小,當數據傳輸完成後,馬上傳給A;

(2)如果完整數據大小不少於busy_buffer大小,則裝滿busy_buffer後,馬上傳給A;

12.proxy_max_temp_file_size,設置臨時文件的總大小。

13.proxy_temp_file_wirte_size,設置同時寫入臨時文件的數據量的總大小。通常設置為8k或者16k。

三、location模塊

1.root,指定根目錄

2.index,指定默認訪問的頁面。

3.try_files,作用是按順序檢查文件是否存在,返回第一個找到的文件或文件夾(結尾加斜線表示為文件夾),如果所有的文件或文件夾都找不到,會進行一個內部重定向到最後一個參數。

4.proxy_pass,用來設置代理伺服器的地址。

5.proxy_redirect,該指令用來修改被代理伺服器返回的響應頭中的Location頭域和「refresh」頭域。

現在的nginx配置不是一成不變的,在將來的需求增加後,也許還會有更多的設定加入,合理的、高效的利用好nginx,也是前端體現高性能的關鍵所在。

文:王劍飛



關鍵字: