Te whakauru i te HAProxy kawenga pauna ki runga CentOS

I whakaritea te whakamaoritanga o te tuhinga i te ahiahi o te timatanga o te akoranga "Kaiwhakahaere Linux. Mariko me te huinga"

Te whakauru i te HAProxy kawenga pauna ki runga CentOS

Ko te whakataurite o te utaina he otinga noa mo te whakahiato whakapae i nga tono paetukutuku puta noa i nga kaihautu maha i te wa e whakarato ana ki nga kaiwhakamahi he waahi kotahi ki te uru ki te ratonga. HAProxy Ko tetahi o te tino rongonui tuwhera puna pūmanawa taurite kawenga e whakarato hoki te wātea nui me te taumahinga takawaenga.

Ka whakapau kaha a HAProxy ki te arotau i te whakamahinga rauemi, te whakanui i te whakaputanga, te whakaiti i te wa whakautu, me te karo i te taumahatanga o nga rawa takitahi. Ka taea te whakauru ki runga i nga momo tohatoha Linux, penei i te CentOS 8, ka arotahi tatou ki tenei aratohu, me nga punaha. Debian 8 и Ubuntu 16.

Te whakauru i te HAProxy kawenga pauna ki runga CentOS

He tino pai te HAProxy mo nga paetukutuku he nui rawa te hokohoko, na reira ka whakamahia hei whakapai ake i te pono me te mahi o nga whirihoranga ratonga tukutuku maha-tūmau. Ko tenei aratohu e whakaatu ana i nga huarahi ki te whakatu i te HAProxy hei taurite kawenga ki runga i te kaihautu kapua CentOS 8, katahi ka arataki i nga waka ki o tūmau tukutuku.

Hei tikanga mo nga hua tino pai, kia rua nga tuunga paetukutuku me te tūmau taurite kawenga. Me whakahaere nga tūmau Tukutuku i te iti rawa o te ratonga tukutuku taketake penei i te nginx, httpd ranei hei whakamatautau i te taurite kawenga i waenga i a raatau.

Te whakauru HAProxy i runga i te CentOS 8

Na te HAProxy he tono puna tuwhera tere tere, ko te tohatoha e waatea ana ki a koe i roto i nga whare pupuri CentOS paerewa ehara pea i te putanga hou. Hei kimi i te putanga o naianei, whakahaeretia te whakahau e whai ake nei:

sudo yum info haproxy

Ko te HAProxy e whakarato ana i nga putanga pumau e toru hei whiriwhiri mai: ko nga putanga e rua e tautokohia ana me te tuatoru, te putanga tawhito kei te whiwhi tonu i nga whakahou tino nui. Ka taea e koe te tirotiro i nga wa katoa te putanga pumau kua whakarārangihia ki te paetukutuku HAProxy ka whakatau ko tehea putanga e hiahia ana koe ki te mahi.

I roto i tenei aratohu, ka whakauruhia e matou te putanga pumau hou 2.0, kaore ano kia waatea i roto i nga whare pupuri paerewa i te wa i tuhia ai te aratohu. Me whakauru e koe mai i te puna taketake. Engari tuatahi, tirohia mena kua tutuki i a koe nga tikanga e tika ana hei tango me te whakahiato i te kaupapa.

sudo yum install gcc pcre-devel tar make -y

Tangohia te waehere puna ma te whakamahi i te whakahau i raro nei. Ka taea e koe te tirotiro mena he putanga hou ake kei te waatea HAProxy whārangi tikiake.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

Kia oti te tango, tangohia nga konae ma te whakamahi i te whakahau i raro nei:

tar xzvf ~/haproxy.tar.gz -C ~/

Haere ki te whaiaronga puna kua wetewetehia:

cd ~/haproxy-2.0.7

Na ka whakahiatohia te papatono mo to punaha:

make TARGET=linux-glibc

Ka mutu, whakauruhia te HAProxy ake:

sudo make install

Kua whakauruhia te HAProxy inaianei, engari me mahi etahi atu whawhe hei mahi. Me haere tonu te whakarite i te rorohiko me nga ratonga kei raro nei.

Te whakatu HAProxy mo to tūmau

Inaianei taapirihia nga raarangi whaiaronga me nga konae tatauranga mo nga whakaurunga HAProxy:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

Waihangahia he hononga tohu mo nga takirua kia taea ai e koe te whakahaere i nga whakahau HAProxy hei kaiwhakamahi auau:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Mena kei te pirangi koe ki te taapiri i tetahi takawaenga ki to punaha hei ratonga, kapea te konae haproxy.init mai i nga tauira ki to raarangi /etc/init.d. Whakatikaina nga whakaaetanga konae kia rere te tuhinga, katahi ka whakaara ano i te daemon systemd:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Me tuku ano e koe te ratonga kia whakaara ano aunoa ina timata te punaha:

sudo chkconfig haproxy on

Mo te waatea, ka tūtohu ano kia taapiri he kaiwhakamahi hou hei whakahaere HAProxy:

sudo useradd -r haproxy

I muri i tenei, ka taea e koe te tirotiro ano i te tau putanga kua whakauruhia ma te whakamahi i te whakahau e whai ake nei:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

I roto i to maatau, me 2.0.7 te putanga, penei i te putanga tauira o runga.

Ka mutu, ko te papangaahi taunoa i CentOS 8 he tino aukati mo tenei kaupapa. Whakamahia nga whakahau e whai ake nei hei tuku i nga ratonga e hiahiatia ana me te tautuhi i te papangaahi:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Tautuhinga Kaitauta Uta

Ko te whakarite HAProxy he tikanga ngawari noa. Ko te mea nui, ko nga mea katoa e tika ana kia mahia e koe ko te korero ki a HAProxy he aha nga hononga e tika ana kia rongohia me te waahi ka tukuna atu.

Ka mahia tenei ma te hanga i tetahi konae whirihoranga /etc/haproxy/haproxy.cfg me nga tautuhinga tautuhi. Ka taea e koe te panui mo nga whiringa whirihoranga HAProxy i runga i te wharangi tuhingaki te hiahia koe ki te mohio atu mo tena.

Tauritenga uta ki te paparanga kawe (papa 4)

Me timata ma te tatūnga taketake. Waihangahia he konae whirihora hou, hei tauira ma te whakamahi vi me te whakahau i raro nei:

sudo vi /etc/haproxy/haproxy.cfg

Tāpirihia ngā wāhanga e whai ake nei ki te kōnae. Whakakapi server_name he aha me karanga ki o kaimau i runga i te wharangi tatauranga, a private_ip - nga wahitau IP motuhake o nga kaitoro e hiahia ana koe ki te arahi i nga hokohoko tukutuku. Ka taea e koe te tirotiro i nga wahitau IP tūmataiti i runga i te paewhiri mana UpCloud me te ripa Whatunga tūmataiti ki te tahua whatunga.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Ka tautuhia he taurite kawenga paparanga kawe (apa 4) whakaingoatia o waho http_front whakarongo i runga i te tauranga 80, ka tuku whakamua i nga waka ki te tuara taunoa ko http_back. Ko nga tatauranga taapiri /haproxy?stats e hono ana i te wharangi tatauranga ki te wahitau kua tohua.

He maha nga momo huringa taurite kawenga.

Ko te tautuhi i nga kaitoro i te waahanga o muri ka taea e HAProxy te whakamahi i enei tuunga mo te whakataurite kawenga i runga i te algorithm round-robin ka taea.

Ka whakamahia nga huringa taurite hei whakatau ko wai te tūmau kei te tuara ka tukuna atu ia hononga. Anei etahi o nga whiringa whaihua:

  • Rootini: Ka whakamahia ia tūmau i runga i tona taumaha. Koinei te algorithm ngawari me te ataahua i te wa e tohatoha ana te wa tukatuka o nga kaitoro. He hihiri tenei algorithm, ka taea te whakatika i te taumaha o te tūmau i runga i te rere.
  • Te iti rawa: ka tohua te tūmau me te iti rawa o ngā hononga. Ka mahia te rauna robin i waenga i nga kaitoro he rite te kawenga. Ko te whakamahi i tenei algorithm e taunaki ana mo nga waahi roa penei i te LDAP, SQL, TSE, me etahi atu, engari kaore e tino pai mo nga waahi poto penei i te HTTP.
  • Tuatahi: Ko te tūmau tuatahi me nga mokamoka hononga e waatea ana ka whiwhi hononga. Ka tohua nga tūmau mai i te iti rawa ID tau ki te teitei, ka taunoa ki te tuunga o te tūmau i te pāmu. Kia tae te tūmau ki te maxconn, ka whakamahia te tūmau e whai ake nei.
  • Source: Ko te wahitau IP punaa ka whakahiatohia, ka wehewehea ki te tapeke taumaha o nga kaitoro whakahaere hei whakatau ko wai te tūmau ka whiwhi i te tono. Ma tenei ara, ka haere tonu te wahitau IP kiritaki kotahi ki te tuumau kotahi, ka noho tonu nga kaitoro.

Te whakarite i te taurite kawenga ki te taumata tono (papa 7)

Ko tetahi atu whiringa e waatea ana ko te whirihora i te taurite kawenga kia rere ki te paparanga tono (apa 7), he mea whai hua ina noho nga wahanga o to tono tukutuku ki runga i nga kaihautu rereke. Ka taea tenei ma te tarai i te tuku hononga, hei tauira ma te URL.

Whakatuwherahia te konae whirihoranga HAProxy ma te whakamahi i te ētita kupu:

sudo vi /etc/haproxy/haproxy.cfg

Na ka whirihorahia nga waahanga o mua me te tuara kia rite ki te tauira i raro nei:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

Ko te pito o mua e whakaatu ana i tetahi ture ACL e kiia nei ko url_blog e pa ana ki nga hononga katoa me nga ara timata mai i te /blog. Ka whakatauhia e Use_backend ko nga hononga e rite ana ki te ahuatanga url_blog me tuku e tetahi tuara ingoa ko blog_back, a ko era atu tono katoa ka whakahaerehia e te tuara taunoa.

I te taha ki muri, ka whakaritea e te whirihoranga nga roopu e rua o nga tūmau: http_back, pera i mua, me tetahi mea hou e kiia nei ko blog_back, e whakahaere ana i nga hononga ki example.com/blog.

I muri i te whakarereke i nga tautuhinga, tiakina te konae ka whakaara ano i te HAProxy ma te whakamahi i te whakahau e whai ake nei:

sudo systemctl restart haproxy

Mena ka whiwhi koe i nga whakatupato, i nga karere hapa ranei i te wa e tiimata ana, tirohia to whirihoranga mo ratou me te mohio kua hanga e koe nga konae me nga kōpaki e tika ana, katahi ka ngana ki te whakaara ano.

Te whakamatautau i te tatūnga

Ina oti te whirihora me te whakahaere a HAProxy, whakatuwherahia te IP IP mo te iwi whanui o te tūmau taurite kawenga i roto i te tirotiro me te tirotiro mena kei te hono tika koe ki te tuara. Ko te tawhā uri tatauranga i roto i te whirihoranga ka hanga he wharangi tatauranga ki te wahitau kua tohua.

http://load_balancer_public_ip/haproxy?stats

Ina utaina e koe te wharangi tatauranga, mena he kakariki katoa o tuumau, katahi ka angitu te tatūnga!

Te whakauru i te HAProxy kawenga pauna ki runga CentOS

Kei roto i te wharangi tatauranga etahi korero whai hua mo te whai i o kaihautu paetukutuku, tae atu ki te waa whakarunga/whakaheke me te maha o nga huihuinga. Mēnā he whero te tohu o te tūmau, tirohia kua whakakā te tūmau, ā, ka taea e koe te ping mai i te mihini taurite kawenga.

Mena karekau te taurite kawenga e whakautu ana, me mohio kei te aukatia nga hononga HTTP e te paahi. Me mohio ano kei te mahi a HAProxy ma te whakamahi i te whakahau i raro nei:

sudo systemctl status haproxy

Te tiaki i te wharangi tatauranga me te kupuhipa

Heoi, mena ka whakararangi noa te wharangi tatauranga ki te pito o mua, katahi ka tuwhera ma te katoa e kite, kaore pea i te pai. Engari, ka taea e koe te tautapa hei tau tauranga ritenga ma te taapiri i te tauira i raro nei ki te mutunga o to kōnae haproxy.cfg. Whakakapi ingoa kaiwhakamahi и kupuhipa mo tetahi mea haumaru:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

Whai muri i te taapiri i tetahi roopu whakarongo hou, tangohia te hononga uri tatauranga tawhito mai i te roopu o mua. Ka mutu, tiakina te konae ka whakaara ano i te HAProxy.

sudo systemctl restart haproxy

Na ka whakatuwhera ano i te taurite kawenga me te tau tauranga hou ka takiuru me te ingoa kaiwhakamahi me te kupuhipa i tohua e koe ki te konae whirihoranga.

http://load_balancer_public_ip:8181

Me mohio kei te whakaatu tonu nga kaitoro katoa i te kaakaariki ka whakatuwhera noa i te IP taurite kawenga kaore he nama tauranga i to kaitirotiro.

http://load_balancer_public_ip/

Mena kei a koe etahi momo wharangi taunga kei runga i o tuumau tuara, ka kite koe i nga wa katoa ka utaina ano e koe te wharangi ka whiwhi whakautu mai i tetahi kaihautu rereke. Ka taea e koe te whakamatau i nga momo huringa taurite i te waahanga whirihoranga, tirohia ranei oti nga tuhinga.

Whakamutunga: HAProxy Load Balancer

Nga mihi nui ki te whakarite i to taurite kawenga HAProxy! Ahakoa he tatūnga taurite kawenga, ka taea e koe te whakapai ake i te mahi me te waatea o to tono paetukutuku. He kupu whakataki noa tenei aratohu ki te whakataurite uta me te HAProxy, he nui ake i nga mea ka taea te hipoki i te aratohu tatūnga tere. Ka tūtohu mātou ki te whakamātau ki ngā whirihoranga rerekē mā te whakamahi tuhinga whanui, e waatea ana ki te HAProxy, katahi ka timata ki te whakamahere i te whakataurite kawenga mo to taiao whakaputa.

Ma te whakamahi i nga kaihautu maha hei whakamarumaru i to ratonga paetukutuku me te ruuma upoko, ko te taurite kawenga tonu ka puta he waahi kore. Ka taea e koe te whakapai ake i te waatea nui ma te whakauru i te IP maanu i waenga i nga taurite kawenga maha. Ka kitea e koe etahi atu korero mo tenei i roto i ta maatau tuhinga mo nga wahitau IP maanu i runga i UpCloud.

He korero ano mo te akoranga "Kaiwhakahaere Linux. Mariko me te huinga"***

Source: will.com

Tāpiri i te kōrero