1、針對ipv4的核心的引數的配置優化
將引數的值最佳到linux系統的/etc/sysctl.conf檔案中,然後使用如下命令使修改生效:
#/sbin/sysctl -p
常用的引數:
1.1、net.core.netdev_max_backlog引數
當每個網路介面接收資料報的速率比核心處理這些包的速率快時,允許傳送到佇列的最大數目。nginx伺服器中定義的ngx_listen_backlog預設值為511。可以調整為:
net.core
.netdev_max_backlog = 262144
;
1.2、net.core.somaxconn引數
調節系統同時發起的tcp連線數。預設為128。在高併發情況下,可能導致鏈結超時或者重傳問題。
net.core
.somaxconn = 262144
;
1.3、net.ipv4.tcp_max_orphans引數
設定系統中最多允許存在多少tcp套接字不被關聯到任何乙個使用者檔案控制代碼上。可以防止簡單的dos攻擊。如果記憶體足夠,可以增大。
net.ipv4.tcp_max_orphans = 262144
;
1.4、net.ipv4.tcp_max_syn_backlog 引數
記錄尚未收到客戶端確認資訊的連線請求的最大值。一般系統記憶體較大的情況下,可以增大這個引數的賦值。
net.ipv4.tcp_max_syn_backlog = 262144
;
1.5、net.ipv4.tcp_synack_retries 引數
該引數用於設定時間戳,避免序列號的捲繞。
net.ipv4.tcp_synack_retries = 0
;
1.6、net.ipv4.tcp_synack_retries 引數
net.ipv4.tcp_synack_retries = 1
;
1.7、net.ipv4.tcp_syn_retries 引數
net.ipv4.tcp_syn_retries = 1
;
2、cpu優化
2.1、worker_processes 指令
設定nginx服務的程序數。值太大會影響io效率。一般設定為2或者4
worker_processes 4;
2.2、worker_cpu_affinity 指令
為每個程序分配cpu的工作核心。有幾個cpu就設定幾組值。
以四核為例來說:
worker_cpu_affinity 0001 0100 1000 0010;
3、網路優化
3.1、keepalive_timeout 指令
用於設定nginx伺服器與客戶端保持連線的超時時間
keepalive_timeout 60 50;
3.2、send_timeout 指令
設定nginx伺服器響應客戶端的超時時間。
send_timeout 10s;
4、與事件驅動模型相關的配置
4.1、use指令,用於指定nginx伺服器使用的事件驅動模型
4.2、worker_connections 指令,設定nginx伺服器的每個工作程序允許同時連線客戶端的最大數量。
worker_connections number
number為最大數量。伺服器允許同時連線的客戶端最大數量cl
ient
=wor
kerp
roce
sses
∗wor
kerc
onne
ctio
ns/2
c li
ent=
work
erpr
oces
ses∗
work
erco
nnec
tion
s/
2一般設定為:
worker_connections 65535;
如果碰到類似於:
worker_connections are more than open file resource limit:1024的錯誤,使用:
#cat /proc/sys/fs/file-max
檢視open file resource limit的值。
如果小於65535,用
#echo "2390251" > /proc/sys/fs/file-max; sysctl -p
這樣就沒問題了。
4.3、worker_rlimit_sigpending指令
設定linux平台的事件訊號佇列長度上限。
worker_rlimit_sigpending limit
limit為linux平台事件訊號佇列的長度上限值。
一般設定為1024。
4.4、epoll_events 指令
設定在epoll 事件驅動模式下nginx伺服器可以與核心之間傳遞事件的數量。
epoll_changes number
預設值為512 nginx高階伺服器配置
當每個網路介面接收資料報的速度比核心處理這些包的快,允許傳送到佇列的資料報的最大數 一般預設128 用於調節系統同時發起的tcp連線數 一般預設128 如果該值太小,在併發的時候會造成鏈結超時或者重傳問題 配置系統中最多允許存在多少個tcp套接字不被關聯到任何乙個使用者檔案控制代碼上。如果超過這個數...
Nginx伺服器的高階配置
將下面的核心引數得到值追加到linux系統的 etc sysctl.conf sbin sysctl pnet.core.netdev max backlog 262114net.core.somaxconn 262144net.ipv4.tcp max orphans 262144net.ipv4...
Nginx伺服器高階
1.基本的配置 修改配置檔案需要重啟伺服器 這種反向 可以實現 把 http 轉換成更安全的 https 的方案 2.其它配置 其他的伺服器 修改配置檔案需要重啟伺服器 瀏覽器訪問 反向 後變成請求 最終獲取到結果.位址列沒有變還是 同一臺伺服器的同乙個埠 修改配置檔案需要重啟伺服器 2.建立第二個...