HAProxy详解(二):HAProxy基础配置与应用实例
一.HAProxy基礎配置與應用實例:
????1.快速安裝HAProxy集群軟件:
????????????HAProxy的官網:?https://www.haproxy.org/#down下載HAProxy的源碼包。
???????????? 安裝:? ??????????????
????????????????????[root@data-1-1 ~]# tar zxvf haproxy-1.4.24.tar.gz
????????????????????[root@data-1-1 ~]# cd haproxy-1.4.24
????????????????????查看haproxy的安裝文件
????????????????????????????[root@data-1-1 haproxy-1.4.24]# more README
????????????????????[root@data-1-1 haproxy-1.4.24]# make TARGET=linux2628 PREFIX=/usr/local/haproxy? ?
????????????????#參數說明
????????????????????????TARGET=linux26 #內核版本,使用uname -r查看內核,如:2.6.18-371.el5,此時該參數就為linux26;kernel 大于2.6.28的用:TARGET=linux2628
????????????????????????ARCH=x86_64 #系統位數
????????????????????????PREFIX=/usr/local/haprpxy #/usr/local/haprpxy為haprpxy安裝路徑
????????????????????[root@data-1-1 haproxy-1.4.24]# make install PREFIX=/usr/local/haproxy
????????????????????????#將HAProxy安裝到/usr/local/haproxy?下? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
????????????????????[root@data-1-1 haproxy-1.4.24]# mkdir /usr/local/haproxy/conf
????????????????????????#HAProxy默認不創建配置文件目錄,這里是創建HAProxy配置文件目錄
????????????????????[root@data-1-1 haproxy-1.4.24]# cp examples/haproxy.cfg /usr/local/haproxy/conf/
????????????????????????#HAProxy安裝完成后,默認安裝目錄中沒有配置文件,這里是將源碼包里面的示例配置文件復制到配置文件目錄。
????2.HAProxy基礎配置文件詳解:
? ? ? ? ? ??1.配置文件概述:
????????????????根據功能和用途,HAProxy配置文件主要由5個部分組成,但有些部分并不是必需的,可以根據需要選擇相應的部分進行配置。
????????????????????(1)global部分
????????????????????????????用來設定全局配置參數,屬于進程級的配置,通常和操作系統配置有關。
????????????????????(2)defaults部分
????????????????????????????默認參數的配置部分。在此部分設置的參數值,默認會自動引用到下面的frontend、backend和listen部分中,因此,如果某些參數屬于共用配置,只需在defaults部分添加一次即可。而如果在frontend、backend和listen部分中也配置了與defaults部分一樣的參數,那么defaults部分參數對應的值自動被覆蓋。
????????????????????(3)frontend部分
????????????????????????????此部分用于設置接收用戶請求的前端虛擬節點。frontend是在HAProxy1.3版本之后才引入的一個組件,同時引入的還有backend組件。通過引入這些組件,在很大程度上簡化了HAProxy配置文件的復雜性。frontend可以根據ACL規則直接指定要使用的后端backend。
????????????????????(4)backend部分
?????????????????????????????此部分用于設置集群后端服務集群的配置,也就是用來添加一組真實服務器,以處理前端用戶的請求。添加的真實服務器類似于LVS中的real server節點。
????????????????????(5)listen部分
????????????????????????????此部分是frontend部分和backend部分的結合體。在HAProxy1.3版本之前,HAProxy的所有配置選項都在這個部分中設置。為了保持兼容性,HAProxy新的版本仍然保留了listen組件的配置方式。目前在HAProxy中,兩種配置方式任選其一即可。
????????????????2.HAProxy配置文件詳解:
????????????????????????根據上面介紹的5個部分對HAProxy的配置文件進行說明:
????????????????????????????(1)global部分
????????????????????????????????????配置示例如下:
????????????????????????????????????????global
????????????????????????????????????????????????????log????127.0.0.1? ? local0 info
????????????????????????????????????????????????????maxconn????4096
????????????????????????????????????????????????? ? user? ? nobody
????????????????????????????????????????????????????group????nobody
????????????????????????????????????????????????????daemon
????????????????????????????????????????????????????nbproc????1
????????????????????????????????????????????????????pidfile????/usr/local/haproxy/logs/haproxy.pid
????????????????????????????????????每個選項的含義:
????????????????????????????????????????□ log : 全局的日志配置,local0是日志設備,info表示日志級別。其中日志級別有err、warning、info、debug4種可選。這個配置表示使用127.0.0.1上的rsyslog服務中的local0日志設備,記錄日志等級為info。
????????????????????????????????????????■?maxconn : 設定每個HAProxy進程可接受的最大并發連接數,此選項等同于Linux命令行選項“ulimit -n”。
??????????????????????????????????????? □??user/group : 設置HAProxy進程的用戶和組,也可使用用戶和組的uid和gid值來替代。
????????????????????????????????????????■ daemon : 設置HAProxy進程進入后臺運行。這是推薦的運行模式。
????????????????????????????????????????□ nbproc : 設置HAProxy啟動時可創建的進程數,此參數要求將HAProxy運行模式設置為daemon,默認只啟動一個進程。根據使用經驗,該值的設置應該小于服務器的CPU核數。創建多個進程,能夠減少每個進程的任務隊列,但是過多的進程可能會導致進程崩潰。
????????????????????????????????????????■ pidfile : 指定HAProxy進程的pid文件。啟動進程的用戶必須有訪問此文件的權限。
????????????????????????????(2)defaults部分
????????????????????????????????????配置示例如下:
????????????????????????????????????????defaults
????????????????????????????????????????????????????????mode? ? http
????????????????????????????????????????????????????????retries????3
? ? ? ? ? ????????????????????????????????????????????? timeout????connect????10s
????????????????????????????????????????????????????????timeout????client????20s
????????????????????????????????????????????????????????timeout????server????30s
????????????????????????????????????????????????????????timeout????check????5s
????????????????????????????????????每個選項的含義:
????????????????????????????????????????□ mode : 設置HAProxy實例默認的運行模式,有tcp、http、health三個可選值。
????????????????????????????????????????????????☆ tcp模式 :在此模式下,客戶端和服務器端之間將建立一個全雙工的連接,不會對七層報文做任何類型的檢查,默認為tcp模式,經常用于SSL、SSH、SMTP等應用。
????????????????????????????????????????????????★ http模式:在此模式下,客戶端請求在轉發至后端服務器之前將會被深度分析,所有不與RFC格式兼容的請求都會被拒絕。
????????????????????????????????????????????????☆ health模式:目前此模式基本已經廢棄,不再多說。
????????????????????????????????????????■?retries:設置連接后服務器的失敗重試次數,如果連接失敗的次數超過這里設置的值,HAProxy會將對應的后端服務器標記為不可用。此參數也可在后面部分進行設置。
????????????????????????????????????????□?timeout? connect:設置成功連接到一臺服務器的最長等待時間,默認單位是毫秒,也可以使用其他的時間單位后綴。
????????????????????????????????????????■?timeout? client:設置連接客戶端發送數據時最長等待時間,默認單位是毫秒,也可以使用其他的時間單位后綴。
????????????????????????????????????????□?timeout? server:設置服務器端回應客戶端數據發送的最長等待時間,默認單位是毫秒,也可以使用其他的時間單位后綴。
????????????????????????????????????????■?timeout? check:設置對后端服務器的檢測超時時間,默認單位是毫秒,也可以使用其他的時間單位后綴。
????????????????????????????(3)?frontend 部分
????????????????????????????????????配置示例如下:
????????????????????????????????????????frontend? www
????????????????????????????????????????????????????????bind????*:80
????????????????????????????????????????????????????????mode????http
????????????????????????????????????????????????????????option????httplog
????????????????????????????????????????????????????????option????forwardfor
????????????????????????????????????????????????????????option????httpclose
????????????????????????????????????????????????????????log????global
????????????????????????????????????????????????????????default_backend????htmpool
????????????????????????????????????這部分通過frontend關鍵字定義了一個名為“www”的前端虛擬節點,上述代碼中每個選項的含義如下:
????????????????????????????????????????□ bind:此選項只能在frontend和listen部分進行定義,用于定義一個或幾個監聽的套接字。bind的使用格式為:
????????????????????????????????????????????bind????[<address>:<port_range>]????interface????<interface>
????????????????????????????????????????????其中,address為可選選項,其可以為主機名或IP地址,如果將其設置為“*”或“0.0.0.0”,將監聽當前系統的所有IPv4地址。port_range可以是一個特定的TCP端口,也可是一個端口范圍,小于1024的端口需要有特定權限的用戶才能使用。interface為可選選項,用來指定網絡接口的名稱,只能在Linux系統上使用。
????????????????????????????????????????■ option? httplog:在默認情況下,HAProxy日志是不記錄HTTP請求的,這樣很不方便HAProxy問題的排查與監控。通過此選項可以啟用日志記錄HTTP請求。
????????????????????????????????????? ? □?option? forwardfor:如果后端服務器需要獲得客戶端的真實IP,就需要配置此參數。由于HAProxy工作于方向代理模式,因此發往后端真實服務器的請求中的客戶端IP均為HAProxy主機的IP,而非真正訪問客戶端的地址,這就導致真實服務器端無法記錄客戶端真正請求來源的IP,而X-Forwarded-For則可用于解決此問題。通過使用forwardfor選項,HAProxy就可以向每個發往后端真實服務器的請求添加X-Forwarded-For記錄,這樣后端真實服務器日志可以通過“X-Forwarded-For”信息來記錄客戶端來源IP。
????????????????????????????????????????■ option? httpclose:此選項表示在客戶端和服務器端完成一次連接請求后,HAProxy將主動關閉此TCP連接。這是對性能非常有幫助的一個參數。
????????????????????????????????????????□ log? global:表示使用全局的日志配置,這里的global表示引用在HAProxy配置文件global部分中定義的log選項配置格式。
????????????????????????????????????????■?default_backend :指定默認的后端服務器池,也就是指定一組后端真實服務器,而這些真實服務器組將在backend段進行定義。這里的htmpool就是一個后端服務器組。
????????????????????????????(4)backend部分
????????????????????????????????????配置示例如下:
????????????????????????????????????????backend? htmpool
????????????????????????????????????????????????mode????http
????????????????????????????????????????????????option????redispatch
????????????????????????????????????????????????option????abortonclose
????????????????????????????????????????????????balance????roundrobin
????????????????????????????????????????????????cookie????SERVERID
????????????????????????????????????????????????option????httpchk????GET????/index.php
????????????????????????????????????????????????server????web1????10.200.34.181:80????cookie????server1????weight????6????check????inter????2000????rise????2????fall????3
????????????????????????????????????????????????server????web1????10.200.34.182:80????cookie????server2? ? weight????6????check????inter????2000????rise????2????fall????3
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 這部分通過backend關鍵字定義了一個名為htmpool的后端真實服務器組。選項含義如下:
????????????????????????????????????????????□ option????redispatch:此參數用于cookie保持的環境中。在默認情況下,HAProxy會將其請求的后端服務器的serverID插入cookie中,以保證會話的session持久性。而如果后端的服務器出現故障,客戶端的cookie是不會刷新的,這就會出現問題。此時,如果設置此參數,就會將客戶端的請求強制定向到另外一臺健康的后端服務器上,以保證服務正常。
????????????????????????????????????????????■ option????abortonclose:如果設置了此參數,可以在服務器負載很高的情況下,自動結束當前隊列中處理時間比較長的連接。
????????????????????????????????????????????□ balance????roundrobin:此關鍵字用來定義負載均衡算法。目前HAProxy支持多種負載均衡算法,常用的有如下幾種:
????????????????????????????????????????????????????☆ roundrobin:是基于權重進行輪叫調度的算法,在服務器的性能分布比較均勻時,這是一種最公平、最合理的算法。此算法使用頻繁。
????????????????????????????????????????????????????★ static-rr:也是基于權重進行輪叫的調度算法,不過此算法為靜態方法,在運行時調整其服務器權重不會失效。
????????????????????????????????????????????????????☆ source:是基于請求源IP的算法。此算法先對請求的源IP進行hash運算,然后將結果與后端服務器的權重總數相除后轉發至某臺匹配的后端服務器。這種方式可以使同一個客戶端IP的請求始終被轉發到某特定的后端服務器。
????????????????????????????????????????????????????★ leastconn:此算法會將新的連接請求轉發到具有最少連接數目的后端服務器。在會話時間較長的場景中推薦使用此算法,例如數據庫負載均衡等。此算法不適合會話較短的環境中,例如基于HTTP的應用。
????????????????????????????????????????????????????☆ uri_param:此算法會對根據URL路徑中的參數進行轉發,這樣可保證在后端真實服務器數量不變時,同一個用戶的請求始終分發到同一臺機器上。
????????????????????????????????????????????????????★ uri:此算法會對部分或整個URL進行hash運算,再經過與服務器的總權重相除,最后轉發到某臺匹配的后端服務器上。
????????????????????????????????????????????????????☆ hdr(<name>):此算法根據http頭進行轉發,如果指定的http頭名稱不存在,則使用roundrobin算法進行策略轉發。
????????????????????????????????????????????■ cookie:表示允許向cookie插入SERVERID,每臺服務器的SETVERID可在下面的server關鍵字中使用cookie關鍵字定義。
????????????????????????????????????????????□?option????httpchk:此選項表示啟用HTTP的服務狀態檢測功能。HAProxy作為一個專業的負載均衡器,它支持對backend部分指定的后端服務節點的健康檢查,以保證在后端backend中某個節點不能服務時,把從frotend端進來的客戶端請求分配至backend中其他健康節點上,從而保證整體服務的可用性。option httpchk的用法如下:
????????????????????????????????????????????????????option????httpchk????<method>????<uri>????<version>
????????????????????????????????????????????????????參數含義:
????????????????????????????????????????????????????????method:表示HTTP請求的方式,常用的有OPTIONS、GET、HEAD幾種方式。一般的健康檢查可以采用HEAD方式進行,而不是采用GET方式,這是因為HEAD方式沒有數據返回,僅檢查Response的HEAD是不是狀態碼200。因此,相對于GET,HEAD方式更快、更簡單。
????????????????????????????????????????????????????????uri:表示要檢測的URL地址,通過執行此URL,可以獲取后端服務器的運行狀態。在正常情況下將返回狀態碼200,返回其他狀態碼均為異常狀態。
????????????????????????????????????????????????????????version:指定心跳檢測時的HTTP的版本號。
???????????????????????????????????????????? ■ server:這個關鍵字用來定義多臺后端真實服務器,不能用于defaults和frontend部分。使用格式為:
????????????????????????????????????????????????????server <name> <address> [:port] [param*]
????????????????????????????????????????????????????參數含義:
????????????????????????????????????????????????????????☆ <name>:為后端真實服務器指定一個內部名稱,隨便定義一個即可。
????????????????????????????????????????????????????????★ <address>:后端真實服務器的IP地址或主機名。
????????????????????????????????????????????????????????☆ <port>:指定連接請求發往真實服務器時的目標端口。在未設定時,將使用客戶端請求時的同一端口。
????????????????????????????????????????????????????????★?[param*]:為后端服務器設定的一系列參數,可用參數非常多,常用參數如下:
????????????????????????????????????????????????????????????????? check:表示啟用對此后端服務器執行健康狀態檢查。
????????????????????????????????????????????????????????????????? inter:設置健康狀態檢查的時間間隔,單位為毫秒。
????????????????????????????????????????????????????????????????? rise:設置從故障狀態轉換至正常狀態需要成功檢查的次數,例如,“rise2”表示2次檢查正常就認為此服務器可用。
????????????????????????????????????????????????????????????????? fall:設置后端服務器從正常狀態轉換為不可用狀態需要檢查的次數,例如,“fall3”表示3此檢查失敗就認為此服務器不可用。
????????????????????????????????????????????????????????????????? cookie:為指定的后端服務器設定cookie值,此處指定的值將在請求入站時被檢查,第一次為此值挑選的后端服務器將在后續的請求中一直被選中,其目的在于實現持久連接的功能。上面的“cookie server1”表示web1的serverid為server1。同理,“cookie server2”表示web2的serverid為server2。
????????????????????????????????????????????????????????????????? weight:設置后端真實服務器的權重,默認為1,最大值為256。設置為0表示不參與負載均衡。
????????????????????????????????????????????????????????????????? backup:設置后端真實服務器的備份服務器,僅僅在后端所有真實服務器均不可用的情況下才啟用。
????????????????????????????????(5)listen部分
????????????????????????????????????????????配置示例:? ?
????????????????????????????????????????????????listen admin_stats
????????????????????????????????????????????????? ? ? ? bind 0.0.0.0:9188
????????????????????????????????????????????????? ? ? ? mode http
????????????????????????????????????????????????? ? ? ? log 127.0.0.1 local0 err
????????????????????????????????????????????????? ? ? ? stats refresh 30s
????????????????????????????????????????????????? ? ? ? stats uri /haproxy-status
????????????????????????????????????????????????? ? ? ? stats realm welcome login\ Haproxy
????????????????????????????????????????????????? ? ? ? stats auth admin:admin
????????????????????????????????????????????????? ? ? ? stats hide-version
????????????????????????????????????????????????? ? ? ? stats admin if? TRUE
????????????????????????????????????????????這個部分通過listen關鍵字定義一個名為“admin_status”的實例,每個選項的含義如下:
????????????????????????????????????????????????□?stats refresh:設置HAProxy監控統計頁面自動刷新的時間。
????????????????????????????????????????????????■?stats uri:設置HAProxy監控統計頁面的URL路徑,可隨意指定。例如,指定“status uri /haproxy-status”,就可以通過http://IP:9188/haproxy-status查看。
??????????????????????????????????????????□?stats realm:設置登錄HAProxy統計頁面時密碼框上的文本提示信息。
????????????????????????????????????????????? ?■ stats auth:設置登錄HAProxy統計頁面的用戶名和密碼。用戶名和密碼通過冒號分割。可為監控頁面設置多個用戶名和密碼,每行一個。
?????????????????????????????????????????????? □?stats hide-version:用來隱藏統計頁面上HAProxy的版本信息。
???????????????????????????????????????????????■? stats admin if? TRUE:通過設置此選項,可以在監控頁面上手工啟用或禁用后端真實服務器,僅在haproxy1.4.9以后版本有效。
????3.HAProxy的日志配置策略:
????????? ? ? ?默認情況下 ,HAProxy為了節省讀寫I/O所消耗的性能,沒有自動配置日志輸出功能,但是為了維護和調試方便,日志的輸出還是很有必要的,下面就簡單介紹如何配置HAProxy的日志輸出功能。
????????????? ? 查看是否安裝rsyslog:
????????????????????[root@data-1-1 ~]# rpm -q rsyslog
????????????????????rsyslog-5.8.10-10.el6_6.x86_64
??? ????????????如果已經安裝了rsyslog軟件包,接著需要修改rsyslog的配置文件,在/etc/rsyslog.d/目錄下創建haproxy.conf文件,內容如下:?
????????????????????[root@data-1-1 ~]# vim /etc/rsyslog.d/haproxy.conf?
????????????????????$ModLoad imudp
????????????????????$UDPServerRun 514
????????????????????local3.* /usr/local/haproxy/logs/haproxy.log
????????????????????local0.* /usr/local/haproxy/logs/haproxy.log
?????????????????這里定義了兩種日志類型,并指定了日志的輸出路徑,其中:
????????????????????第一行的“imudp”是模塊名,支持UDP協議。
????????????????????第二行表示允許514端口接收使用UDP和TCP協議轉發過來的日志,而rsyslog在默認情況下,正是在514端口監聽UDP。其實也可以將上面haproxy.conf文件的內容直接寫到/etc/rsyslog.conf文件中。
????????????????????然后,還需要修改/etc/sysconfig/rsyslog文件,修改為如下內容:
????????????????????????SYSLOGD_OPTIONS="-c 5 -r -m 0"
????????????????????其中,“-r”表示接收遠程日志。
????????????????????最后重啟rsyslog服務即可完成配置:
????????????????????????[root@data-1-1 ~]# service rsyslog restart
????????????????要實現將HAProxy日志寫入指定的文件中,還需要在haproxy.cfg中配置對應的日志選項。
????4.通過HAProxy的ACL規則實現智能負載均衡:
????????????由于HAProxy可以工作在七層模型下,因此,要實現HAProxy的強大功能,一定要使用強大靈活的ACL規則,通過ACL規則可以實現基于HAProxy的智能負載均衡系統。HAProxy通過ACL規則完成兩種主要的功能,分別是:
????????????????1)通過設置的ACL規則檢查客戶端請求是否合法。如果符合ACL規則要求,那么將放行;如果不符合規則,則直接中斷請求。
????????????????2)符合ACL規則要求的請求將被提交到后端的backend服務器集群,進而實現基于ACL規則的負載均衡。
????????????HAProxy中的ACL規則經常使用在frontend段中,使用方法如下:
????????????????acl????自定義的acl名稱????acl方法????-i????[ 匹配的路徑或文件 ]
????????????????其中:
????????????????????□ acl:是一個關鍵字,表示定義ACL規則的開始。后面需要跟上自定義的ACL名稱。
????????????????????■ acl方法:這個字段用來定義實現ACL的方法,HAProxy定義了很多ACL方法,經常使用的方法有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等。
???????????????????□ -i:表示不區分大小寫,后面需要跟上匹配的路徑或文件或正則表達式。
????????????????與ACL規則一起使用的HAProxy參數還有use_backend,use_backend后面需要跟上一個backend實例名,表示在滿足ACL規則后去請求哪個backend實例,與use_backend對應的還有default_backend參數,它表示在沒有滿足ACl條件的時候默認使用哪個后端backend.
????????????????????????例:
????????????????????????????acl????www_policy????hdr_reg(host)????-i????^(www.z.cn|z.cn)
????????????????????????????acl????bbs_policy????hdr_dom(host)????-i????bbs.z.cn
????????????????????????????acl????url_policy????url_sub????-i????buy_sid=
????????????????????????????
????????????????????????????use_backend?????server_www????if????www_policy
????????????????????????????use_backend????server_app????if????url_policy
????????????????????????????use_backend????server_bbs????if????bbs_policy
????????????????????????????default_backend????server_cache
????????????????這里僅僅列出了HAProxy配置文件中ACL規則的配置部分,其他選項并未列出。
????????????????這些例子定義了www_policy、bbs_policy、url_policy三個ACL規則,第一條規則表示如果客戶端以www.z.cn或z.cn開頭的域名發送請求時,則此規則返回true,同理第二條規則表示如果客戶端通過bbs.z.cn域名發送請求時,則此規則返回true,而第三條規則表示如果客戶端在請求的URL中包含“buy_sid=”字符串時,則此規則返回ture。
????????????????第四、第五、第六條規則定義了當www_policy、bbs_policy、url_policy三個ACL規則返回true時要調度到哪個后端backend,例如,當用戶的請求滿足www_policy規則時,那么HAProxy會將用戶的請求直接發往名為server_www的后端backend,其他以此類推。而當用戶的請求不滿足任何一個ACL規則時,HAProxy就會把請求發往由default_backend選項指定的server_cache這個后端backend。
????????????????例子:
????????????????????????acl????url_static????path_end????.gif .png .jpg .css .js
????????????????????????acl????host_www????hdr_beg(host) -i????www
????????????????????????acl????host_static????har-beg(host) -i????img. video. download. ftp.
????????????
????????????????????????use_backend????static????if????host_static????||? ? host_www????url_static
????????????????????????use_backend????www????if????host_www
????????????????????????default_backend????server_cache
????????????????與上面的例子類似,本例中也定義了url_static、host_www和host_static三個ACL規則,其中,第一條規則通過path_end參數定義了如果客戶端在請求的URL中以.gif、.png、.jpg、.css或.js結尾是返回true,第二條規則通過hdr_beg(host)參數定義了如果客戶端以www開頭的域名發送請求時則返回true,同理,第三條規則也是通過hdr_beg(host)參數定義了如果客戶端以img.、video.、download.或ftp.開頭的域名發送請求時則返回true。
????????????????第四、第五條規則定義了當滿足ACL規則后要調度到哪個后端backend,例如,當用戶的請求同時滿足host_static規則與url_static規則,或同時滿足host_www和url_static規則時,那么會將用戶請求直接發往名為static的后端backend,如果用戶請求滿足host_www規則,那么請求將被調度到名為www的后端backend,如果不滿足所有規則,那么將用戶請求默認調度到名為server_cache的這個后端backend
轉自
HAProxy詳解(二)-閆利朋的博客-51CTO博客
http://blog.51cto.com/6284444/2136805
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的HAProxy详解(二):HAProxy基础配置与应用实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORM操作
- 下一篇: 用C#获取硬盘序列号,CPU序列号,网卡