18、Nginx-配置優化

一、連接數優化

當Nginx作為負載均衡服務器時,能夠接收的併發連接應該越多越好,為了測試服務器的併發能力,可以利用Apache中提供的ApacheBench工具,該工具可以在一臺計算機中向一個url地址發送大量的併發請求,檢查服務器響應這些請求耗時,有多少請求處理失敗,利用工具可以模擬一臺服務器被大量客戶端併發連接的情況,以測試服務器併發能力。

進入apache安裝目錄:

18、Nginx-配置優化

執行命令:./ab -n10 -c2 http://192.168.44.31/,注意ip後面有/

18、Nginx-配置優化

從上述測試報告可以看出,服務器能承受500個併發連接,總共耗時0.085秒;

18、Nginx-配置優化

連接數設置到1500時,可以看出如上問題。

該提示表示打開的文件超出了系統限制,通過ulimit -a可以查看當前系統的限制:

18、Nginx-配置優化

從結果可以看出當前對於文件打開數量(open file)的限制為1024,使用命令:ulimit -n 65500命令可以臨時更改這個數量;

若要每次開機後自動修改,可以將命令寫入/etc/profile文件中。

重新請求結果如下:

18、Nginx-配置優化

優化Nginx連接數

為了使Nginx能夠承受更高的併發數,可以編輯conf/nginx.conf配置文件進行配置,具體如下:

18、Nginx-配置優化

上述配置中:

  • worker_processes指令用於指定工作進程的個數,設置為auto時Nginx將根據cpu的核心數來控制;

  • worker_rlimit_nofile用於設置最多打開的文件數量;

  • worker_connections用於設置每個工作進程可以接收的連接數;

  • multi_accept表示是否允許一個工作進程響應多個請求;

Nginx支持select,poll,kqueue,epoll等多種類型的連接處理方式,在默認情況下會自動選擇最適合系統的方式;

將錯誤日誌級別設置為info時,可以查看當前Nginx使用的方式

18、Nginx-配置優化

重啟併發請求可以看出Nginx完成了併發測試,沒有出現失敗的請求;

18、Nginx-配置優化

二、客戶端請求限制

限制同一個IP的併發數

通過limit_conn指令可以限制併發連接數,在conf/nginx.conf配置文件中進行如下配置:

18、Nginx-配置優化

limit_conn_zone指令用於開闢一個共享內存空間保存客戶端IP,空間名稱為perip,

空間大小為10M,limit_conn指令用於限制連接數量;

預定義變量$binary_remote_addr保存了用二進制表示的當前客戶端IP地址。

配置生效之後,Nginx將對於同一個IP地址允許10個併發連接,當超過時返回503錯誤,

另外limit_conn指令也可以在server和location塊中使用,用於實現不同級別的控制。

限制虛擬主機的併發數

18、Nginx-配置優化

限制響應的傳輸速度

18、Nginx-配置優化

三、瀏覽器緩存優化

在server模塊通過expires指令為靜態資源設置過期時間,將圖片,swf文件設置為30天后過期,將css,js文件設置為12個小時後過期。

18、Nginx-配置優化

另外即使服務器沒有設置Expires,瀏覽器也會基於常見的靜態資源擴展名自動緩存。


分享到:


相關文章: