搜尋
首頁運維NginxNginx怎麼配置TCP負載平衡

Nginx怎麼配置TCP負載平衡

May 19, 2023 am 08:29 AM
nginxtcp

Nginx怎麼配置TCP負載平衡

假設Kubernetes叢集已經配置好,我們將基於CentOS為Nginx建立一個虛擬機器。

以下是實驗中設定的詳細資訊:

  • Nginx (CenOS8 Minimal) – 192.168.1.50

  • Kube Master – 192.168.1.40

  • Kube Worker 1 – 192.168.1.41

  • Kube Worker 2 – 192.168.

  • #Kube Worker 2 – 192.168.1.

##步驟1)安裝epel倉庫

因為nginx軟體套件在CentOS系統預設倉庫裡面沒有,所以需要安裝epel倉庫:

[root@nginxlb ~]# dnf install epel-release -y

步驟2)安裝Nginx

執行以下命令安裝nginx:

[root@nginxlb ~]# dnf install nginx -y

使用rpm命令驗證Nginx套件的詳細資訊:

[root@nginxlb ~]# rpm -qi nginx

Nginx怎麼配置TCP負載平衡 

設定防火牆,允許存取nginx的http和https服務:

[root@nginxlb ~]# firewall-cmd --permanent --add-service=http[root@nginxlb ~]# firewall-cmd --permanent --add-service=https[root@nginxlb ~]# firewall-cmd –reload

使用下列指令將SELinux設定為permissive模式,並重新啟動系統讓selinux關閉生效:

[root@nginxlb ~]# sed -i s/^SELINUX=.*$/SELINUX=permissive/ /etc/selinux/config[root@nginxlb ~]# reboot

步驟3)從Kubernetes中取得應用程式的NodePort詳細資訊

[kadmin@k8s-master ~]$  kubectl get all -n ingress-nginx

Nginx怎麼配置TCP負載平衡 

從上面的輸出可以看到,每個工作節點的NodePort 32760映射到連接埠80,NodePort 32375對應到443埠。我們將在Nginx設定檔中使用這些節點連接埠來做負載平衡。

步驟4)將Nginx配置負載平衡

編輯nginx設定文件,並新增以下內容:

[root@nginxlb ~]# vim /etc/nginx/nginx.conf

註解掉「server」部分(從38到57行): Nginx怎麼配置TCP負載平衡 

並新增以下幾行:

upstream backend {
  server 192.168.1.41:32760;
  server 192.168.1.42:32760;
}

server {
  listen 80;
  location / {
      proxy_read_timeout 1800;
      proxy_connect_timeout 1800;
      proxy_send_timeout 1800;
      send_timeout 1800;
      proxy_set_header        Accept-Encoding   "";
      proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
      proxy_set_header        X-Forwarded-For   $remote_addr;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://backend;
  }

   location /nginx_status {
       stub_status;
   }
}

Nginx怎麼配置TCP負載平衡 

儲存設定文件,並退出。

  Nginx怎麼配置TCP負載平衡 

根據上述更改,所有向nginx的80埠的請求,都將被路由到的Kubernetes工作節點(192.168.1.41和192.168.1.42)的NodePort(32760 )連接埠上。

使用下列指令啟用Nginx服務:

[root@nginxlb ~]# systemctl start nginx[root@nginxlb ~]# systemctl enable nginx

測試Nginx的TCP負載平衡器

要測試nginx作為Kubernetes的TCP負載平衡是否運作正常,請部署基於nginx的deployment,將deployment的端口暴露為80端口,並為nginx 的deployment定義入口資源。我已經使用以下命令來部署這些Kubernetes物件:

[kadmin@k8s-master ~]$ kubectl create deployment nginx-deployment --image=nginx
deployment.apps/nginx-deployment created
[kadmin@k8s-master ~]$ kubectl expose deployments nginx-deployment  --name=nginx-deployment --type=NodePort --port=80
service/nginx-deployment exposed

運行以下命令以獲取deployments,svc和ingress詳細資訊:Nginx怎麼配置TCP負載平衡 

更新本地主機的hosts文件,以便nginx- lb.example.com指向nginx伺服器的IP位址(192.168.1.50)

[root@localhost ~]# echo "192.168.1.50  nginx-lb.example.com" >> /etc/hosts

嘗試透過瀏覽器存取nginx-lb.example.com Nginx怎麼配置TCP負載平衡

以上是Nginx怎麼配置TCP負載平衡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
NGINX SSL/TLS配置:使用HTTPS確保您的網站NGINX SSL/TLS配置:使用HTTPS確保您的網站Apr 10, 2025 am 09:38 AM

通過Nginx配置SSL/TLS來確保網站安全,需要以下步驟:1.創建基本配置,指定SSL證書和私鑰;2.優化配置,啟用HTTP/2和OCSPStapling;3.調試常見錯誤,如證書路徑和加密套件問題;4.應用性能優化建議,如使用Let'sEncrypt和會話復用。

NGINX面試問題:ACE您的DevOps/System Admin面試NGINX面試問題:ACE您的DevOps/System Admin面試Apr 09, 2025 am 12:14 AM

Nginx是高性能的HTTP和反向代理服務器,擅長處理高並發連接。 1)基本配置:監聽端口並提供靜態文件服務。 2)高級配置:實現反向代理和負載均衡。 3)調試技巧:檢查錯誤日誌和測試配置文件。 4)性能優化:啟用Gzip壓縮和調整緩存策略。

NGINX緩存技術:改善網站性能NGINX緩存技術:改善網站性能Apr 08, 2025 am 12:18 AM

Nginx缓存可以通过以下步骤显著提升网站性能:1)定义缓存区和设置缓存路径;2)配置缓存有效期;3)根据不同内容设置不同的缓存策略;4)优化缓存存储和负载均衡;5)监控和调试缓存效果。通过这些方法,Nginx缓存能减少后端服务器压力,提升响应速度和用户体验。

帶Docker的NGINX:部署和縮放容器化應用程序帶Docker的NGINX:部署和縮放容器化應用程序Apr 07, 2025 am 12:08 AM

使用DockerCompose可以簡化Nginx的部署和管理,通過DockerSwarm或Kubernetes進行擴展是常見的做法。 1)使用DockerCompose定義和運行Nginx容器,2)通過DockerSwarm或Kubernetes實現集群管理和自動擴展。

高級NGINX配置:掌握服務器塊和反向代理高級NGINX配置:掌握服務器塊和反向代理Apr 06, 2025 am 12:05 AM

Nginx的高級配置可以通過服務器塊和反向代理實現:1.服務器塊允許在一個實例中運行多個網站,每個塊獨立配置。 2.反向代理將請求轉發到後端服務器,實現負載均衡和緩存加速。

NGINX性能調整:針對速度和低潛伏期進行優化NGINX性能調整:針對速度和低潛伏期進行優化Apr 05, 2025 am 12:08 AM

Nginx性能調優可以通過調整worker進程數、連接池大小、啟用Gzip壓縮和HTTP/2協議、使用緩存和負載均衡來實現。 1.調整worker進程數和連接池大小:worker_processesauto;events{worker_connections1024;}。 2.啟用Gzip壓縮和HTTP/2協議:http{gzipon;server{listen443sslhttp2;}}。 3.使用緩存優化:http{proxy_cache_path/path/to/cachelevels=1:2k

NGINX安全性硬化:保護您的Web服務器免受攻擊NGINX安全性硬化:保護您的Web服務器免受攻擊Apr 04, 2025 am 12:06 AM

Nginx安全強化可以通過以下步驟實現:1)確保所有流量通過HTTPS傳輸,2)配置HTTP頭增強通信安全性,3)設置SSL/TLS加密數據傳輸,4)實施訪問控制和速率限制防範惡意流量,5)使用ngx_http_secure_link_module模塊防範SQL注入攻擊,這些措施能有效提升Nginx服務器的安全性。

NGINX負載平衡:配置高可用性和可擴展性NGINX負載平衡:配置高可用性和可擴展性Apr 03, 2025 am 12:12 AM

Nginx通過配置負載均衡可以實現高可用性和可擴展性。 1)定義上游服務器組,2)選擇合適的負載均衡算法如輪詢、加權輪詢、最少連接或IP哈希,3)優化配置並監控調整服務器權重,以確保最佳性能和穩定性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用