免费人成动漫在线播放r18-免费人成观看在线网-免费人成黄页在线观看日本-免费人成激情视频在线观看冫-jlzzjlzz亚洲大全-jlzzjlzz亚洲日本

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)資訊 » 經(jīng)驗(yàn) » 正文

Nginx服務(wù)器高性能優(yōu)化的配置__輕松實(shí)現(xiàn)

放大字體  縮小字體 發(fā)布日期:2021-09-18 12:26:49    作者:企資小編    瀏覽次數(shù):79
導(dǎo)讀

今天要說的是Nginx服務(wù)器高性能優(yōu)化的配置,如何使Nginx輕松實(shí)現(xiàn)10萬并發(fā)訪問量。通常來說,一個(gè)正常的 Nginx Linux 服務(wù)器可以達(dá)到 500,000 – 600,000 次/秒 的請求處理性能,如果Nginx服務(wù)器經(jīng)過優(yōu)化的話,則可以

今天要說的是Nginx服務(wù)器高性能優(yōu)化的配置,如何使Nginx輕松實(shí)現(xiàn)10萬并發(fā)訪問量。

通常來說,一個(gè)正常的 Nginx Linux 服務(wù)器可以達(dá)到 500,000 – 600,000 次/秒 的請求處理性能,如果Nginx服務(wù)器經(jīng)過優(yōu)化的話,則可以穩(wěn)定地達(dá)到 904,000 次/秒 的處理性能,大大提高Nginx的并發(fā)訪問量。

這里需要特別說明的是:

1、本文中所有列出來的配置都是在我的測試環(huán)境驗(yàn)證的,你需要根據(jù)你服務(wù)器的情況進(jìn)行配置。


一、優(yōu)化思路

分析:nginx要成功響應(yīng)請求,會(huì)有如下兩個(gè)限制:

1、nginx接受的tcp連接多,能否建立起來?

2、nginx響應(yīng)過程,要打開許多文件,能否打開?

所以,只要我們針對上面兩個(gè)限制進(jìn)行優(yōu)化,就能大幅提升Nginx的效率。

二、優(yōu)化步驟

我們知道Nginx的工作流程如下圖所示:

一、步驟:

1. 找到Nginx服務(wù)器瓶頸。

2. 優(yōu)化配置。

3. 重新壓力測試

注意:在配置修改之后務(wù)必要進(jìn)行壓力測試,這樣可以觀測到具體是哪個(gè)配置修訂的優(yōu)化效果最明顯。通過這種有效測試方法可以為你節(jié)省大量時(shí)間。

二、找出Nginx的瓶頸

1. 打開Apache ab壓力測試工具,輸入如下命令:ab -n 200000 -c 5000 localhost:8080/index.html。

2. 查看Nginx 狀態(tài)信息

在瀏覽器中輸入nginx的地址:127.0.0.1/status,查看nginx的狀態(tài)信息。

注意查看connections,waiting等參數(shù)信息。從而確定如何優(yōu)化相關(guān)參數(shù)。

Nginx 狀態(tài)信息打開的方法,這里就不細(xì)說了,不清楚的可以看我之前的文章,《Nginx總結(jié)(八)啟用Nginx Status及狀態(tài)參數(shù)詳解》

三、優(yōu)化配置

根據(jù)上面的方法總結(jié)起來,一般來說nginx 配置文件中對優(yōu)化比較有作用的為以下幾項(xiàng):

Nginx優(yōu)化配置項(xiàng):

1)優(yōu)化 workprocess,cpu

worker_processes 8;      // 根據(jù)CPU核數(shù)配置worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000  00100000 01000000 10000000;

2)事件處理模型優(yōu)化

nginx的連接處理機(jī)制在于不同的操作系統(tǒng)會(huì)采用不同的I/O模型,Linux下,nginx使用epoll的I/O多路復(fù)用模型,在freebsd使用kqueue的IO多路復(fù)用模型,在solaris使用/dev/pool方式的IO多路復(fù)用模型,在windows使用的icop等等。
要根據(jù)系統(tǒng)類型不同選擇不同的事務(wù)處理模型,我們使用的是Centos,因此將nginx的事件處理模型調(diào)整為epoll模型。

events {    worker_connections  10240;    //     use epoll;}

說明:在不指定事件處理模型時(shí),nginx默認(rèn)會(huì)自動(dòng)的選擇最佳的事件處理模型服務(wù)。

3)設(shè)置work_connections 連接數(shù)

 worker_connections  10240; 

4)每個(gè)進(jìn)程的最大文件打開數(shù)

worker_rlimit_nofile 65535;  # 一般等于ulimit -n系統(tǒng)值

5)keepalive timeout會(huì)話保持時(shí)間

keepalive_timeout  60;

6)GZIP壓縮性能優(yōu)化

gzip on;       #表示開啟壓縮功能gzip_min_length  1k; #表示允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭的Content-Length中獲取。默認(rèn)值是0,表示不管頁面多大都進(jìn)行壓縮,建議設(shè)置成大于1K。如果小于1K可能會(huì)越壓越大gzip_buffers     4 32k; #壓縮緩存區(qū)大小gzip_http_version 1.1; #壓縮版本gzip_comp_level 6; #壓縮比率, 一般選擇4-6,為了性能gzip_types text/css text/xml application/javascript;  #指定壓縮的類型 gzip_vary on; #vary header支持

7)proxy超時(shí)設(shè)置

proxy_connect_timeout 90;proxy_send_timeout  90;proxy_read_timeout  4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k

8)高效傳輸模式

sendfile on; # 開啟高效文件傳輸模式。tcp_nopush on; #需要在sendfile開啟模式才有效,防止網(wǎng)路阻塞,積極的減少網(wǎng)絡(luò)報(bào)文段的數(shù)量。將響應(yīng)頭和正文的開始部分一起發(fā)送,而不一個(gè)接一個(gè)的發(fā)送。

Linux系統(tǒng)內(nèi)核層面:

Nginx要達(dá)到最好的性能,出了要優(yōu)化Nginx服務(wù)本身之外,還需要在nginx的服務(wù)器上的內(nèi)核參數(shù)。

這些參數(shù)追加到/etc/sysctl.conf,然后執(zhí)行sysctl -p 生效。

1)調(diào)節(jié)系統(tǒng)同時(shí)發(fā)起的tcp連接數(shù)
net.core.somaxconn = 262144

2)允許等待中的監(jiān)聽

net.core.somaxconn = 4096

3) tcp連接快速回收

4) tcp連接重用

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

5)不抵御洪水攻擊

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_orphans = 262144 #該參數(shù)用于設(shè)定系統(tǒng)中最多允許存在多少TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上,主要目的為防止Ddos攻擊

6)最大文件打開數(shù)

ulimit -n 30000

最后

以上,就把Nginx服務(wù)器高性能優(yōu)化的配置介紹完了,大家可以根據(jù)我提供的方法,每個(gè)參數(shù)挨個(gè)設(shè)置一遍,看看相關(guān)的效果。這些都是一點(diǎn)點(diǎn)試出來的,這樣才能更好的理解各個(gè)參數(shù)的意義。

 
(文/企資小編)
免責(zé)聲明
本文僅代表作發(fā)布者:企資小編個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。