nginx伺服器的高階配置

2021-08-20 11:34:05 字數 2872 閱讀 9170

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.建立第二個...