手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

Nginx 端口監聽(listen指令)

2024-07-31 09:10:15 774

Nginx 端口監聽(listen指令)

藍隊云小課堂:

本節主要來介紹 Nginx 中與端口監聽有關的配置指令,下表為端口監聽指令及其相關說明。


名稱

端口監聽指令

指令

listen

作用域

server

默認值

listen*:80 或 *:8000

指令說明

服務監聽端口、綁定 IP、監聽方式的配置

 

Nginx 服務通過 listen 指令的指令值監聽網絡請求,可以是 IP 協議的形式,也可以是 UNIX 域套接字。如果不設置 listen 指令,Nginx 在以超級用戶運行時則監聽 80 端口,以非超級用戶運行時則監聽 8000 端口。

 

listen 指令的指令值還針對監聽方式提供了豐富的參數,如下表所示。

參數

默認值

參數說明

address

--

若為 IP 協議,該參數值為指定綁定監聽端口的 IP 或主機名;

若為 UNIX 域套接字,則該參數值為 sock 文件路徑

port

80

IP 協議監聽的端口

bind

address:port

指定 IP 及端口

ipv6only

on

只接收 IPv6 連接或接收 IPv6 和 IPv4 連接

default_server

--

當 http 指令域中包含多個虛擬主機時,

該參數用于指定哪個虛擬主機是默認服務,

默認將第一個順序的 server 設為默認服務。

默認服務可以用來處理沒有 server_name 匹配成功的請求

http2

--

HTTP/2 協議支持

spdy

--

SDPY 協議支持,與 HTTP/2 協議不能同時存在

ssl

--

SSL 支持

proxy_protocol

--

在指定監聽端口上啟用   proxy_protocol 協議支持

fastopen

number

HTTP 處于保持連接(keepalive)狀態時,

允許不經過三次握手的 TCP 連接的隊列的最大數

deferred

--

添加該參數后,在 TCP 三次握手的過程中,

檢測到客戶端有數據時才將 TCP 狀態置為 ESTABLISHED 狀態,

沒有數據則直接丟棄

reuseport

--

默認情況下,所有的工作進程會共享一個   socket 去監聽同一 IP

和端口的組合。

該參數啟用后,允許每個工作進程有獨立的   socket 去監聽同一 IP 和端口的組合,內核會對傳人的連接進行負載均衡。適用于 Linux 3.9+,DragonFly BSD 和 FreeBSD 12+

so_keepalive

off

配置是否在監聽的端口啟用"TCP keepalive"機制。

當設置為 on 時,默認等同于 so_keepalive=30m::10,

表示 30 分鐘無數據傳輸時發送探測包,發送 10 次,

發送間隔使用系統內核參數 tcp_keepalive_intvl 的設定值

backlog

-1/511

當阻塞時,設置掛起連接隊列的最大長度,

在 FreeBSD,DragonFly BSD 和 MacOS 操作系統上,默認值為 -1,

其他平臺上值為 511

rcvbuf

--

socket 接收緩沖的大小,默認為 8k 字節,

在接收數據比較大的場景中可以適當調整

sndbuf

--

socket 發送緩沖的大小,默認為 8k 字節,

在發送數據較大的場景中可以適當調整

setfib

number

為監聽套接字設置關聯路由表,僅在 FreeBSD 系統上有效

accept_filter

filter

為監聽套接字設置過濾器,僅支持   FreeBSD 和 NetBSD 5.0+ 系統

配置樣例如下:

http {
server {
  listen 127.0.0.1:8000;      #
監聽127.0.0.1的8000端口
  listen 127.0.0.1;          # 監聽127.0.0.1的默認80端口(root權限)
  listen 8000;             # 監聽本機所有IP的8000端口
  listen *:8000;            # 監聽本機所有IP的8000端口
  listen localhost:8000;      # 監聽locahost的8000端口
  listen [::]:8000;           # 監聽IPv6的8000端口
  listen [::1];               # 監聽IPv6的回環IP的默認80端口(root權限)
  listen unix:/var/run/nginx.sock; # 監聽域套接字文件

  listen *:8000 \\           # 監聽本機的8000端口
      default_server \\     # 當前服務是http指令域的主服務
       fastopen=30 \\      # 開啟fastopen功能并限定最大隊列數為30
      deferred \\          # 拒絕空數據連接
      reuseport \\         # 工作進程共享socket這個監聽端口
       backlog=1024 \\     # 請求阻塞時掛起隊列數是1024個
       so_keepalive=on;    # 當socket為保持連接時,開啟狀態檢測功能

}
}

 

更多小知識,可聯系藍隊云一起探討。

 


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: