天天看點

nVisual部署之nginx配置說明

作者:NWVDI耐威迪

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

接下來,從http子產品開始,再到server、location子產品,分别說明一下各配置的參數。

一、http子產品

nVisual部署之nginx配置說明

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子產品

nVisual部署之nginx配置說明

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。

nVisual部署之nginx配置說明

8.proxy_buffering,設定是否開啟proxy的buffer功能,參數的值為on或者off。如果這個設定為off,那麼proxy_buffers和proxy_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子產品

nVisual部署之nginx配置說明

1.root,指定根目錄

2.index,指定預設通路的頁面。

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

nVisual部署之nginx配置說明

4.proxy_pass,用來設定代理伺服器的位址。

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

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

文:王劍飛

繼續閱讀