Kërkesat
Instalimi i HAProxy
Konfigurimi i HAProxy
HAProxy është një aplikacion softuerësh rrjeti që ofron disponueshmëri të lartë, balancim të ngarkesës dhe proxying për aplikacionet e rrjetit TCP dhe HTTP. Ai është i përshtatshëm për faqet e internetit me trafik të lartë dhe fuqizon shumë sajte të njohura në internet. Ky artikull do t'ju tregojë se si të instaloni dhe konfiguroni HAProxy në Debian 9.1.
Megjithëse HAProxy ka disa veçori të spikatura, ky artikull fokusohet në mënyrën se si të konfiguroni HAProxy për të "proxy" aplikacionin tuaj të internetit.
Kërkesat
- Të paktën dy serverë Vultr (për funksionalitetin e balancimit të ngarkesës) me faqen tuaj të internetit ose aplikacionin në internet të vendosur në të dy.
Instalimi i HAProxy
Debian 9 tashmë dërgohet me HAProxy 1.7 (lëshimi më i fundit i qëndrueshëm në kohën e shkrimit), dhe ne thjesht mund ta instalojmë duke përdorur apt-get
:
# apt-get update
# apt-get install haproxy
Nëse komandat e mëparshme ishin të suksesshme, atëherë ju keni instaluar HAProxy dhe mund të vazhdoni në hapin tjetër.
Konfigurimi i HAProxy
Skedari i konfigurimit HAProxy është i ndarë në dy seksione - "global" dhe "proxies". Njëra merret me konfigurimin e gjerë të procesit, ndërsa kjo e fundit përbëhet nga konfigurimi i paracaktuar, pjesa e përparme dhe seksionet e fundit.
Seksioni Global
Duke përdorur redaktuesin tuaj të preferuar të tekstit, hapni /etc/haproxy/haproxy.cfg
dhe vini re seksionet e paracaktuara: "global" dhe "defaults". Gjëja e parë që mund të dëshironi të bëni është të rrisni maxconn
madhësinë në një madhësi të arsyeshme, pasi kjo ndikon në lidhjet që lejon HAProxy. Shumë lidhje mund të shkaktojnë prishjen e shërbimit tuaj të internetit për shkak të shumë kërkesave. Do t'ju duhet të rregulloni madhësinë për të parë se çfarë funksionon për ju. Në seksionin global, ne kemi zgjedhur një maxconn
vlerë prej 3072
.
global
daemon
maxconn 3072
Në seksionin e paracaktuar, shtoni rreshtin e mëposhtëm nën modalitetin http
:
option forwardfor
Kjo do të shtojë X-Forwarded-For
tituj në secilën kërkesë, gjë që lejon serverët tuaj të backend të mësojnë adresën IP origjinale të përdoruesit.
Gjithashtu, shtoni këtë linjë për të aktivizuar modalitetin e mbylljes së lidhjes HTTP në anën e serverit duke ruajtur aftësinë për të mbështetur HTTP-në për të mbajtur gjallë në anën e klientit. Kjo redukton vonesën në anën e klientit dhe ndihmon në ruajtjen e burimeve të serverit:
option http-server-close
Nëse dëshironi të përdorni keep-alive në të dyja anët e klientit dhe serverit, atëherë mund ta përdorni option http-keep-alive
në vend të kësaj. Ky opsion është veçanërisht i dobishëm kur kostoja e krijimit të një lidhjeje të re me serverin është e konsiderueshme në krahasim me koston e marrjes së burimit të kërkuar.
Më në fund, skedari i konfigurimit që rezulton do të duket diçka si kjo:
defaults
mode http
option forwardfor
option http-server-close
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
Seksioni i përfaqësuesve
Për të konfiguruar përfaqësuesin tuaj, do t'ju duhet të shtoni dy seksione në skedarin e konfigurimit për të përcaktuar dy pjesët e proxy: frontend dhe backend.
Konfigurimi i frontendit
Frontend do të trajtojë lidhjet tuaja HTTP. Shtoni sa vijon në fund të haproxy.cfg
skedarit tuaj :
frontend http-frontend
bind public_ip:80
reqadd X-Forwarded-Proto:\ http
default_backend wwwbackend
Sigurohuni që ta zëvendësoni public_ip
me adresën IP publike të serverit tuaj ose emrin e domenit.
Konfigurimi i Backend
Konfiguroni backend-in tuaj duke shtuar rreshtat e mëposhtëm në fund të skedarit tuaj të konfigurimit:
backend wwwbackend
server 1-www server1_ip:80 check
server 2-www server2_ip:80 check
server 3-www server3_ip:80 check
Konfigurimi i backend i përdorur këtu krijon 3 lidhje të emërtuara X-www
. ( X
është 1, 2 ose 3.) Secila prej tyre korrespondon me një serverX_ip:80
adresë. (Zëvendësojeni serverX_ip
me adresat IP të rasteve tuaja Vultr.) Kjo do t'ju lejojë të ngarkoni ekuilibrin midis secilit server në grupin e serverit të caktuar (duke supozuar se çdo adresë IP korrespondon me një server tjetër). check
Opsion bën ngarkesën akrobat kryejnë kontrolle shëndetësore në server.
Ruani skedarin e konfigurimit dhe më pas rinisni HAProxy:
service haproxy restart
Nëse gjithçka po funksionon, atëherë do të jeni në gjendje të lidheni me http://public_ip/
(duke e zëvendësuar atë me IP-në tuaj publike ose emrin e domenit siç është konfiguruar në hapin e frontit) dhe të shikoni faqen tuaj të internetit.
Gabimet e korrigjimit
Nëse shembulli juaj HAProxy refuzon të fillojë pas modifikimeve tuaja, shanset janë që të keni një gabim diku në skedarin e konfigurimit. Për të marrë mesazhe të qarta në lidhje me problemin në skedarin e konfigurimit, mund të provoni të nisni manualisht HAProxy duke përdorur këtë komandë:
# haproxy -f /etc/haproxy/haproxy.cfg
Për shembull, nëse shihni dalje si kjo:
[ALERT] 234/195612 (2561) : parsing [/etc/haproxy/haproxy.cfg:48] : server 1-www has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 234/195612 (2561) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 234/195612 (2561) : Fatal errors found in configuration.
Pastaj, keni harruar të specifikoni numrin e portit për serverin 1-www
.