Paano I-configure ang HAProxy bilang Reverse Proxy

Paano I Configure Ang Haproxy Bilang Reverse Proxy



Kapag mayroon kang web server, ang pagkakaroon ng paraan para ipasa ang mga kahilingan ng kliyente at ang tugon ng server ay nakakatulong sa pamamahagi ng trapiko at pinapahusay ang seguridad. Ang isang reverse proxy, gaya ng HAProxy, ay gumaganap bilang isang tagapamagitan sa pagitan ng iyong web application at mga client device kapag na-configure. Sa ganoong paraan, natatanggap nito ang mga kahilingan ng kliyente at ipinapasa ang mga ito sa naaangkop na web server habang tinatanggap ang tugon ng server at ipinapadala ang mga ito sa mga kliyente. Ang pag-configure ng HAProxy sa iyong server side upang kumilos bilang iyong reverse proxy ay isang tapat na proseso. Idinetalye ng post na ito ang mga hakbang na dapat mong gawin.

Bakit Gumamit ng Reverse Proxy?

Bago talakayin ang mga hakbang upang i-configure ang HAProxy bilang isang reverse proxy, mabilis nating i-highlight kung bakit gumagana ang isang reverse proxy sa iyong kalamangan. Ang mga sumusunod ay ang mga benepisyong makukuha mo sa paggamit ng HAProxy bilang isang reverse proxy:

  1. Pagbalanse ng Load – Ang iyong web server ay maaaring, sa isang punto, ay magkaroon ng isang kaso ng maraming kahilingan ng kliyente na, kung hindi maayos na mapangasiwaan, ay maaaring mag-overload dito na nagdudulot ng hindi inaasahang downtime. Gayunpaman, tinitiyak ng pag-configure ng reverse proxy na maipapamahagi ang trapiko sa mga backend server upang matiyak na walang server na ma-overload sa mga kahilingan.
  2. Firewall at Seguridad – Ikinokonekta ng reverse proxy ang mga device ng kliyente sa web server. Ang paggawa nito ay binabawasan ang panganib na direktang ilantad ang aming mga backend server sa internet. Sa ganoong paraan, ang isang nakakahamak na trapiko ay madaling ma-filter at mai-block bago ito makapinsala sa mga server.
  3. Mas mahusay na Caching - Sa isang reverse proxy, mapapansin mo ang pangkalahatang pagpapabuti ng pagganap dahil mababawasan ang oras ng pagkarga sa pamamagitan ng pag-cache ng static na nilalaman. Bukod, makakamit mo ang isang mas mahusay na karanasan ng gumagamit.
  4. Pagwawakas ng SSL/TLS – Sa pamamagitan ng reverse proxy, ang pag-encrypt at pag-decryption sa mga koneksyon sa SSL/TLS ay nagiging seamless, at ang iyong mga backend server ay hindi na kailangang sagutin ang gawaing ito, na binabawasan ang kanilang load.

Paano I-configure ang HAProxy bilang Reverse Proxy

Nang maipaliwanag kung bakit mahalaga ang reverse proxy gaya ng HAProxy, ibigay natin ang mga hakbang sa pagsasaayos na dapat sundin.







Hakbang 1: I-install ang HAProxy



Marahil ay mayroon ka nang naka-install na HAProxy sa iyong system. Kung gayon, laktawan ang hakbang na ito. Gayunpaman, para sa isang taong bago dito, patakbuhin ang sumusunod na command upang i-install ang HAProxy:



$ sudo apt install haproxy

Nai-install na namin ito sa aming kaso.





Hakbang 2: I-edit ang HAProxy Configuration File



Ang HAProxy ay may configuration file na dapat mong i-access at i-edit para i-configure bilang iyong reverse proxy. Magsimula sa pamamagitan ng pagbubukas ng config file gamit ang isang text editor.

$ sudo nano /etc/haproxy/haproxy.cfg

Kapag nagbukas ito, tandaan na mayroon itong mga pangunahing configuration para sa default at pandaigdigang mga seksyon. Dapat tayong gumawa ng dalawa pang seksyon: frontend at backend. Tinutukoy ng frontend ang mga interface na dapat tumanggap ng mga kahilingan ng kliyente, habang ang backend ay tumutukoy sa mga server na hahawak sa trapiko.

Para sa halimbawang ito, iko-configure namin ang frontend upang tanggapin ang mga kahilingan ng kliyente mula sa mga port 80 at 81. Pagkatapos ay lumikha kami ng isang panuntunan upang ipamahagi ang trapiko upang ang mga koneksyon mula sa port 80 ay iruruta sa isang partikular na server habang ang mga mula sa port 81 ay mapupunta sa ibang server. Ang aming frontend na seksyon ay tulad ng ipinapakita sa sumusunod:

Dahil gumawa kami ng dalawang backend server, backend2 at linux_backend, dapat naming gawin ang mga backend na seksyon para sa parehong mga server. Tinukoy namin kung anong IP ang ibabahagi ng trapiko sa aming 'server1' at 'server2' para sa bawat isa.

Kapag na-edit na ang configuration file, i-save ito at lumabas sa file. Tandaan na maraming paraan para i-configure ang HAProxy depende sa iyong mga pangangailangan. Para sa aming kaso, ginagawa namin ang mga web server gamit ang tinukoy na IP address upang iruta ang aming trapiko. Baguhin ang mga IP upang tumugma sa iyong mga web server at kung saang port mo gustong makinig.

Hakbang 3: I-verify ang Validity

Sa HAProxy, mayroong isang command na nagbibigay-daan sa iyong i-verify kung valid ang iyong config file. Patakbuhin ang sumusunod na command at tingnan kung anong output ang makukuha mo:

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Kung nakakuha ka ng katulad na output, kinukumpirma nito na wasto ang iyong config file. Kung hindi, ito ay magtataas ng mga error.

Hakbang 4: Subukan ang Reverse Proxy

Gamit ang isang command tulad ng 'curl', maaari kang magpadala ng trapiko sa iyong web server at makita kung paano ito tumutugon. Para sa aming kaso, ginagamit namin ang Python3 upang lumikha ng mga web server.

Ang pagpapatakbo ng command na 'curl' ay nagpapatunay na ang aming web server ay nakikinig sa tinukoy na port at na ang HAProxy ay namahagi ng trapiko sa tinukoy na server batay sa aming configuration file.

Maaari mo ring i-access ang iyong web server sa isang browser at kumpirmahin na gumagana ang reverse proxy.

Dahil mayroon tayong dalawang web server na maaaring gamitin depende sa port na ginagamit ng mga device ng kliyente, itali natin ang ibang web server sa ibang port at tingnan kung ano ang mangyayari.

Ipinapakita ng sumusunod na output na ipinadala ng HAProxy ang aming trapiko sa pangalawang backend server pagkatapos matukoy na ipinadala ang kahilingan ng kliyente sa pamamagitan ng port 81, na nagkukumpirma na gumagana ang pamamahagi ng trapiko gaya ng inaasahan.

Iyan ay kung paano i-configure ang HAProxy bilang isang reverse proxy.

Konklusyon

Ang HAProxy ay isang mahusay na pagpipilian para sa isang reverse proxy para sa iyong web server. Ang pag-configure nito ay diretso. Tukuyin lamang kung anong port ang pakikinggan para sa mga kahilingan ng kliyente at kung anong mga panuntunan ang gagamitin para sa pagbabalanse ng load. Pagkatapos, idagdag ang mga backend server na gagamitin at mapapatakbo at gagana ang iyong reverse proxy. Ibinahagi ng post na ito ang mga hakbang na dapat sundin at nagpakita ng isang halimbawa upang matiyak na magiging komportable ka sa HAProxy.