nginx的upstream配置和作用是什麼
設定範例
upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; server backup2.example.com:8080 backup; } server { location / { proxy_pass http://backend; } }
指令
#語法: | upstream name { ... } |
預設值: | — |
#上下文: | #http |
定義一組伺服器。這些伺服器可以監聽不同的連接埠。而且,監聽在tcp和unix域套接字的伺服器可以混用。
範例:
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; }
預設情況下,nginx會依照加權輪替的方式將請求分發到各伺服器。在上面的範例中,每7個請求會透過以下方式分發: 5個請求分到backend1.example.com, 一個請求分到第二個伺服器,一個請求分到第三個伺服器。與伺服器通訊的時候,如果發生錯誤,請求會傳給下一個伺服器,直到所有可用的伺服器都被嘗試過。如果所有伺服器都回傳失敗,客戶端將會得到最後通訊的那個伺服器的(失敗)回應結果。
語法: | server address [parameters]; |
預設值: | — |
上下文: | upstream |
#定義伺服器的位址address和其他參數parameters。位址可以是網域名稱或ip位址,連接埠是可選的,或是指定「unix:」前綴的unix域套接字的路徑。如果沒有指定端口,就使用80端口。如果一個網域解析到多個ip,本質上是定義了多個server。
你可以定義下面的參數:weight=number設定伺服器的權重,預設是1。 max_fails=number設定nginx與伺服器通訊的嘗試失敗的次數。在fail_timeout參數定義的時間段內,如果失敗的次數達到此值,nginx就認為伺服器不可用。在下一個fail_timeout時間段,伺服器不會再被嘗試。失敗的嘗試次數預設是1。設為0就會停止統計嘗試次數,認為伺服器是一直可用的。你可以透過指令proxy_next_upstream、 fastcgi_next_upstream和memcached_next_upstream來設定什麼是失敗的嘗試。預設配置時,http_404狀態不被認為是失敗的嘗試。 fail_timeout=time設定
統計失敗嘗試次數的時間段。在這段時間中,伺服器失敗次數達到指定的嘗試次數,伺服器就被認為不可用。
伺服器被認為不可用的時間段。
預設情況下,該超時時間是10秒。 backup標記為備用伺服器。當主伺服器無法使用以後,請求會傳給這些伺服器。 down標記伺服器永久不可用,可以跟ip_hash指令一起使用。
example:
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; server backup1.example.com:8080 backup; }
語法: | ip_hash; |
默認值: | — |
上下文: | upstream |
從1.3.2和1.2.2版本開始支援ipv6位址。
如果其中一個伺服器想暫時移除,應該要加上down參數。這樣可以保留目前客戶端ip位址雜湊分佈。 範例:upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down; server backend4.example.com; }
從1.3.1和1.2.2版本開始,ip_hash的負載平衡方法才支援設定伺服器權重值。
keepalive connections; | |
— | |
upstream |
语法: | least_conn; |
默认值: | — |
上下文: | upstream |
这个指令出现在版本 1.3.1 和 1.2.2.
指定服务器组的负载均衡方法,根据其权重值,将请求发送到活跃连接数最少的那台服务器。 如果这样的服务器有多台,那就采取有权重的轮转法进行尝试。
嵌入的变量
ngx_http_upstream_module模块支持以下嵌入变量:
$upstream_addr保存服务器的ip地址和端口或者是unix域套接字的路径。 在请求处理过程中,如果有多台服务器被尝试了,它们的地址会被拼接起来,以逗号隔开,比如: “192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock”。 如果在服务器之间通过“x-accel-redirect”头或者error_page有内部跳转,那么这些服务器组之间会以冒号隔开,比如:“192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80”。$upstream_response_time以毫秒的精度保留服务器的响应时间,(输出)单位是秒。 出现多个响应时,也是以逗号和冒号隔开。$upstream_status保存服务器的响应代码。 出现多个响应时,也是以逗号和冒号隔开。$upstream_http_...保存服务器的响应头的值。比如“server”响应头的值可以通过$upstream_http_server变量来获取。 需要注意的是只有最后一个响应的头会被保留下来。
以上是nginx的upstream配置和作用是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP
