成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 HAProxy 實現網絡流量的負載平衡

運維 系統運維
在這篇文章中,我將通過設置一個非常基本的 HAProxy 環境,使用 HTTPS 來監聽安全端口 443,并利用幾個后端 Web 服務器。它甚至會將所有進入預定義 URL(如 /api/)的流量發送到不同的服務器或服務器池。


安裝、配置和運行 HAProxy,在幾個網絡或應用服務器之間分配網絡流量。


不是只有在一個大型公司工作才需要使用負載平衡器。你可能是一個業余愛好者,用幾臺樹莓派電腦自我托管一個網站。也許你是一個小企業的服務器管理員;也許你確實在一家大公司工作。無論你的情況如何,你都可以使用 ??HAProxy?? 負載平衡器來管理你的流量。

HAProxy 被稱為“世界上最快和使用最廣泛的軟件負載平衡器”。它包含了許多可以使你的應用程序更加安全可靠的功能,包括內置的速率限制、異常檢測、連接排隊、健康檢查以及詳細的日志和指標。學習本教程中所涉及的基本技能和概念,將有助于你使用 HAProxy 建立一個更強大的、遠為強大的基礎設施。

為什么需要一個負載平衡器?

負載平衡器是一種在幾個網絡或應用服務器之間輕松分配連接的方法。事實上,HAProxy 可以平衡任何類型的傳輸控制協議(??TCP??)流量,包括 RDP、FTP、WebSockets 或數據庫連接。分散負載的能力意味著你不需要因為你的網站流量比谷歌大就購買一個擁有幾十萬 G 內存的大型網絡服務器。

負載平衡器還為你提供了靈活性。也許你現有的網絡服務器不夠強大,無法滿足一年中繁忙時期的峰值需求,你想增加一個,但只是暫時的。也許你想增加一些冗余,以防一個服務器出現故障。有了 HAProxy,你可以在需要時向后端池添加更多的服務器,在不需要時刪除它們。

你還可以根據情況將請求路由到不同的服務器。例如,你可能想用幾個緩存服務器(如 ??Varnish??)來處理你的靜態內容,但把任何需要動態內容的東西,如 API 端點,路由到一個更強大的機器。

在這篇文章中,我將通過設置一個非常基本的 HAProxy 環境,使用 HTTPS 來監聽安全端口 443,并利用幾個后端 Web 服務器。它甚至會將所有進入預定義 URL(如 ??/api/??)的流量發送到不同的服務器或服務器池。

安裝 HAProxy

要開始安裝,請啟動一個新的 CentOS 8 服務器或實例,并使系統達到最新狀態:

$ sudo yum update -y

這通常會持續一段時間。在等待的時候給自己拿杯咖啡。

這個安裝有兩部分:第一部分是安裝 yum 版本的 HAProxy,第二部分是編譯和安裝你的二進制文件,用最新的版本覆蓋以前的 HAProxy。用 yum 安裝,在生成 systemd 啟動腳本等方面做了很多繁重的工作,所以運行 ??yum install??,然后從源代碼編譯,用最新的版本覆蓋 HAProxy 二進制:

$ sudo yum install -y haproxy

啟用 HAProxy 服務:

$ sudo systemctl enable haproxy

要升級到最新版本(??版本 2.2??,截至本文寫作為止),請編譯源代碼。許多人認為從源代碼編譯和安裝一個程序需要很高的技術能力,但這是一個相當簡單的過程。首先,使用 ??yum?? 安裝一些提供編譯代碼工具的軟件包:

$ sudo yum install dnf-plugins-core
$ sudo yum config-manager --set-enabled PowerTools
$ sudo yum install -y git ca-certificates gcc glibc-devel \
lua-devel pcre-devel openssl-devel systemd-devel \
make curl zlib-devel

使用 ??git?? 獲得最新的源代碼,并改變到 ??haproxy?? 目錄:

$ git clone http://git.haproxy.org/git/ haproxy
$ cd haproxy

運行以下三個命令來構建和安裝具有集成了 Prometheus 支持的 HAProxy:

$ make TARGET=linux-glibc USE_LUA=1 USE_OPENSSL=1 USE_PCRE=1 \
PCREDIR= USE_ZLIB=1 USE_SYSTEMD=1 \
EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"

$ sudo make PREFIX=/usr install # 安裝到 /usr/sbin/haproxy

通過查詢版本來測試它:

$ haproxy -v

你應該看到以下輸出:

HA-Proxy version 2.2.4-b16390-23 2020/10/09 - https://haproxy.org/

創建后端服務器

HAProxy 并不直接提供任何流量,這是后端服務器的工作,它們通常是網絡或應用服務器。在這個練習中,我使用一個叫做 ??Ncat?? 的工具,它是網絡領域的“瑞士軍刀”,用來創建一些極其簡單的服務器。安裝它:

$ sudo yum install nc -y

如果你的系統啟用了 ??SELinux??,你需要啟用端口 8404,這是用于訪問 HAProxy 統計頁面的端口(下面有解釋),以及你的后端服務器的端口:

$ sudo dnf install policycoreutils-python-utils
$ sudo semanage port -a -t http_port_t -p tcp 8404
$ sudo semanage port -a -t http_port_t -p tcp 10080
$ sudo semanage port -a -t http_port_t -p tcp 10081
$ sudo semanage port -a -t http_port_t -p tcp 10082

創建兩個 Ncat 網絡服務器和一個 API 服務器:

$ while true ;
do
nc -l -p 10080 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server ONE"' ;
done &

$ while true ;
do
nc -l -p 10081 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server TWO"' ;
done &

$ while true ;
do
nc -l -p 10082 -c 'echo -e "HTTP/1.1 200 OK\nContent-Type: application/json\n\n { \"Message\" :\"Hello, World!\" }"' ;
done &

這些簡單的服務器打印出一條信息(如“This is Server ONE”),并運行到服務器停止為止。在現實環境中,你會使用實際的網絡和應用程序服務器。

修改 HAProxy 的配置文件

HAProxy 的配置文件是 ??/etc/haproxy/haproxy.cfg??。你在這里進行修改以定義你的負載平衡器。這個 ??基本配置?? 將讓你從一個工作的服務器開始:

global
log 127.0.0.1 local2
user haproxy
group haproxy

defaults
mode http
log global
option httplog

frontend main
bind *:80

default_backend web
use_backend api if { path_beg -i /api/ }

#-------------------------
# SSL termination - HAProxy handles the encryption.
# To use it, put your PEM file in /etc/haproxy/certs
# then edit and uncomment the bind line (75)
#-------------------------
# bind *:443 ssl crt /etc/haproxy/certs/haproxy.pem ssl-min-ver TLSv1.2
# redirect scheme https if !{ ssl_fc }

#-----------------------------
# Enable stats at http://test.local:8404/stats
#-----------------------------

frontend stats
bind *:8404
stats enable
stats uri /stats
#-----------------------------
# round robin balancing between the various backends
#-----------------------------

backend web
server web1 127.0.0.1:10080 check
server web2 127.0.0.1:10081 check

#-----------------------------

# API backend for serving up API content
#-----------------------------
backend api
server api1 127.0.0.1:10082 check

重啟并重新加載 HAProxy

HAProxy 可能還沒有運行,所以發出命令 ??sudo systemctl restart haproxy?? 來啟動(或重新啟動)它。“重啟” 的方法在非生產情況下是很好的,但是一旦你開始運行,你要養成使用 ??sudo systemctl reload haproxy?? 的習慣,以避免服務中斷,即使你的配置中出現了錯誤。

例如,當你對 ??/etc/haproxy/haproxy.cfg?? 進行修改后,你需要用 ??sudo systemctl reload haproxy?? 來重新加載守護進程,使修改生效。如果有錯誤,它會讓你知道,但繼續用以前的配置運行。用 ??sudo systemctl status haproxy?? 檢查 HAProxy 的狀態。

如果它沒有報告任何錯誤,你就有一個正在運行的服務器。在服務器上用 ??curl?? 測試,在命令行輸入 ??curl http://localhost/??。如果你看到 “This is Server ONE”,那就說明一切都成功了!運行 ??curl?? 幾次,看著它在你的后端池中循環,然后看看當你輸入 ??curl http://localhost/api/?? 時會發生什么。在 URL 的末尾添加 ??/api/?? 將把所有的流量發送到你池子里的第三個服務器。至此,你就有了一個正常運作的負載平衡器

檢查你的統計資料

你可能已經注意到,配置中定義了一個叫做 ??stats?? 的前端,它的監聽端口是 8404:

frontend stats
bind *:8404
stats uri /stats
stats enable

在你的瀏覽器中,加載 ??http://localhost:8404/stats??。閱讀 HAProxy 的博客 ??學習 HAProxy 的統計頁面??,了解你在這里可以做什么。

一個強大的負載平衡器

雖然我只介紹了 HAProxy 的幾個功能,但你現在有了一個服務器,它可以監聽 80 和 443 端口,將 HTTP 流量重定向到 HTTPS,在幾個后端服務器之間平衡流量,甚至將匹配特定 URL 模式的流量發送到不同的后端服務器。你還解鎖了非常強大的 HAProxy 統計頁面,讓你對你的系統有一個很好的概覽。

這個練習可能看起來很簡單,不要搞錯了,你剛剛建立和配置了一個非常強大的負載均衡器,能夠處理大量的流量。

為了你方便,我把本文中的所有命令放在了 ??GitHub Gist?? 中。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-05-04 17:31:05

2010-05-04 17:54:50

網絡負載平衡

2010-05-05 18:07:53

網絡負載平衡

2010-04-21 13:48:48

網絡負載平衡

2010-05-04 17:38:36

ISP負載平衡

2010-12-17 10:45:13

ldirectordLVS負載平衡

2009-12-21 17:24:46

WCF負載平衡

2010-05-04 17:50:41

負載平衡

2010-04-20 13:36:17

負載平衡

2010-05-10 17:15:36

負載平衡方案

2010-04-21 10:17:59

2013-12-16 15:09:15

多核負載

2020-03-19 13:10:48

DRSVMware負載平衡

2010-05-04 17:45:49

自動負載平衡

2010-04-25 23:36:47

負載平衡服務器

2010-05-10 18:27:51

負載平衡產品

2010-05-10 18:19:00

負載平衡技術

2010-02-22 16:43:09

WCF負載平衡

2011-04-06 11:36:28

MRTG流量

2009-01-11 10:23:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久91精品国产一区二区三区 | 国产福利在线 | 久久久久久久久久影视 | 国产一区精品 | 精品91| av影音资源 | 亚洲精品456 | 久久久久一区二区三区 | 欧美久久久网站 | 日韩在线免费视频 | 日韩黄色av | 成人毛片网 | av在线一区二区三区 | 欧美一级视频在线观看 | 人操人人 | 日韩中文一区 | 精品国产鲁一鲁一区二区张丽 | 日韩欧美在线观看 | 亚洲美女视频 | 羞羞网站在线免费观看 | 日韩欧美国产精品 | www亚洲精品 | 一级免费毛片 | 日批日韩在线观看 | 午夜视频免费网站 | 亚洲高清电影 | 99这里只有精品视频 | 中文字幕亚洲视频 | 日韩中文字幕在线视频 | 最新国产精品视频 | 久久久91精品国产一区二区三区 | 亚洲人在线 | caoporn国产精品免费公开 | 国产乱码精品一区二区三区忘忧草 | 日韩精品视频网 | 韩三级在线观看 | 精品欧美乱码久久久久久 | 日本免费一区二区三区视频 | 96国产精品久久久久aⅴ四区 | 羞羞视频在线观看 | 成人在线激情 |