ວິທີຕັ້ງ HAProxy ເປັນ Load Balancer ສຳ ລັບ Nginx ໃນ CentOS 8


ເພື່ອຮັບປະກັນໃຫ້ມີການ ນຳ ໃຊ້ເວັບໄຊຕ໌ສູງສຸດ, ສາມາດປັບຂະ ໜາດ ໄດ້, ແລະມີປະສິດຕິພາບສູງ, ດຽວນີ້ມັນເປັນເລື່ອງ ທຳ ມະດາທີ່ຈະປະຕິບັດເຕັກໂນໂລຢີທີ່ແນະ ນຳ ການຊ້ ຳ ຊ້ອນ, ເຊັ່ນການແບ່ງກຸ່ມເຊີຟເວີແລະການດຸ່ນດ່ຽງການໂຫຼດ. ຍົກຕົວຢ່າງ, ການຕັ້ງກຸ່ມຂອງເຊີບເວີທີ່ເຮັດວຽກທັງ ໝົດ ໃນໂປແກຼມດຽວກັນແລະຫຼັງຈາກນັ້ນກໍ່ ນຳ ໃຊ້ການດຸ່ນດ່ຽງການໂຫຼດທີ່ຢູ່ຕໍ່ ໜ້າ ພວກມັນເພື່ອແຈກຢາຍການຈະລາຈອນ.

HAProxy ແມ່ນແຫຼ່ງເປີດ, ມີປະສິດທິພາບ, ມີປະສິດທິພາບສູງ, ເຊື່ອຖືໄດ້, ປອດໄພແລະ ນຳ ໃຊ້ຢ່າງກວ້າງຂວາງໃນການ ນຳ ໃຊ້ TCP/HTTP ທີ່ມີຄວາມສາມາດໃນການໂຫຼດຫຼາຍ, ຕົວແທນເຊີເວີ້ແລະເຄື່ອງ ກຳ ນົດ SSL/TLS ທີ່ສ້າງຂຶ້ນ ສຳ ລັບເວບໄຊທ໌ການຈະລາຈອນທີ່ສູງຫຼາຍ. ມັນໃຊ້ໄດ້ດີໃນ Linux, Solaris, FreeBSD, OpenBSD ເຊັ່ນດຽວກັນກັບລະບົບປະຕິບັດການ AIX.

ຄູ່ມືນີ້ສະແດງໃຫ້ເຫັນວິທີການຕັ້ງຄ່າດຸ່ນດ່ຽງການໂຫຼດທີ່ມີຄວາມພ້ອມສູງກັບ HAProxy ໃນ CentOS 8 ເພື່ອຄວບຄຸມການຈະລາຈອນໃນກຸ່ມຂອງເຄື່ອງແມ່ຂ່າຍເວັບ NGINX. ມັນຍັງສະແດງໃຫ້ເຫັນວິທີການ ກຳ ນົດການຢຸດເຊົາ SSL/TLS ໃນ HAProxy.

ມີທັງ ໝົດ 4 ເຊີບເວີທີ່ມີການຕິດຕັ້ງແບບ CentOS 8 ໜ້ອຍ ທີ່ສຸດ.

----------- HAProxy Server Setup ----------- 
HA Proxy Server - hostname: haproxy-server.tecmint.lan; IP: 10.42.0.247
Test Site Domain: www.tecmint.lan


----------- Client Web Servers Setup ----------- 
Web Server #1 - hostname: websrv1.tecmint.lan; IP: 10.42.0.200
Web Server #2 - hostname: websrv2.tecmint.lan; IP: 10.42.0.21
Web Server #3 - hostname: websrv3.tecmint.lan; IP: 10.42.0.34

ຂັ້ນຕອນທີ 1: ການຕັ້ງຄ່າ Nginx HTTP Server ໃນເຄື່ອງ Client

1. ເຂົ້າສູ່ລະບົບເຄື່ອງຈັກລູກຄ້າ CentOS 8 ຂອງທ່ານທັງ ໝົດ ແລະຕິດຕັ້ງ Nginx web server ໂດຍໃຊ້ dnf package manager ຕາມທີ່ສະແດງ.

# dnf install Nginx

2. ຕໍ່ໄປ, ເລີ່ມຕົ້ນໃຫ້ບໍລິການ Nginx, ສຳ ລັບດຽວນີ້, ໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດເມື່ອເລີ່ມຕົ້ນລະບົບແລະຢືນຢັນວ່າມັນຂື້ນແລະແລ່ນໂດຍກວດເບິ່ງສະຖານະພາບຂອງມັນ, ໂດຍໃຊ້ ຄຳ ສັ່ງ systemctl (ເຮັດແບບນີ້ຢູ່ໃນເຄື່ອງຂອງລູກຄ້າທັງ ໝົດ).

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. ພ້ອມກັນນັ້ນ, ຖ້າການບໍລິການ firewalld ກຳ ລັງແລ່ນຢູ່ໃນທຸກເຄື່ອງຂອງລູກຄ້າ (ເຊິ່ງທ່ານສາມາດກວດສອບໂດຍການແລ່ນ systemctl ເລີ່ມຕົ້ນ firewalld), ທ່ານຕ້ອງເພີ່ມການບໍລິການ HTTP ແລະ HTTPS ໃນການຕັ້ງຄ່າ firewall ເພື່ອອະນຸຍາດການຮ້ອງຂໍຈາກການດຸ່ນດ່ຽງການໂຫຼດຜ່ານ firewall ກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx. ຫຼັງຈາກນັ້ນ, ໃຫ້ບໍລິການ firewalld ຄືນ ໃໝ່ ເພື່ອສົ່ງຜົນຕໍ່ການປ່ຽນແປງ ໃໝ່ (ເຮັດໃນເຄື່ອງຂອງລູກຄ້າທັງ ໝົດ).

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

4. ຕໍ່ໄປ, ເປີດຕົວທ່ອງເວັບເວັບໄຊຕ໌ໃນເຄື່ອງຈັກທ້ອງຖິ່ນຂອງທ່ານແລະທົດສອບວ່າການຕິດຕັ້ງ Nginx ເຮັດວຽກໄດ້ດີຫລືບໍ່. ໃຊ້ IP ຂອງລູກຄ້າເພື່ອ ນຳ ທາງ, ເມື່ອທ່ານເຫັນ ໜ້າ ການທົດສອບ Nginx, ມັນ ໝາຍ ຄວາມວ່າເຄື່ອງແມ່ຂ່າຍເວັບທີ່ຕິດຕັ້ງຢູ່ໃນເຄື່ອງຂອງລູກຄ້າ ກຳ ລັງເຮັດວຽກຢ່າງຖືກຕ້ອງ.

5. ຕໍ່ໄປ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງສ້າງ ໜ້າ ທົດສອບຢູ່ໃນເຄື່ອງຂອງລູກຄ້າທີ່ພວກເຮົາຈະໃຊ້ໃນພາຍຫລັງເພື່ອທົດສອບການຕິດຕັ້ງ HAProxy.

----------- Web Server #1 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv1.tecmint.lan"> /usr/share/nginx/html/index.html

----------- Web Server #2 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv2.tecmint.lan"> /usr/share/nginx/html/index.html

----------- Web Server #3 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv3.tecmint.lan"> /usr/share/nginx/html/index.html

ຂັ້ນຕອນທີ 2: ການຕິດຕັ້ງແລະການຕັ້ງຄ່າ HAProxy Server ໃນ CentOS 8

6. ດຽວນີ້ຕິດຕັ້ງ HAProxy ໃນ server HAProxy ໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

# dnf install haproxy

7. ຕໍ່ໄປ, ເລີ່ມຕົ້ນການບໍລິການ HAProxy, ເຮັດໃຫ້ມັນສາມາດເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດເມື່ອເກີບລະບົບແລະກວດສອບສະຖານະຂອງມັນ.

# systemctl start haproxy
# systemctl enable haproxy
# systemctl status haproxy

8. ຕອນນີ້ພວກເຮົາຈະ ກຳ ຫນົດຄ່າ HAProxy ໂດຍໃຊ້ເອກະສານການຕັ້ງຄ່າຕໍ່ໄປນີ້.

# vi /etc/haproxy/haproxy.cfg

ເອກະສານການຕັ້ງຄ່າແມ່ນແບ່ງອອກເປັນ 4 ພາກໃຫຍ່.

  • ການຕັ້ງຄ່າທົ່ວໂລກ - ກຳ ນົດຕົວ ກຳ ນົດຂະບວນການຢ່າງກວ້າງຂວາງ.
  • ຄ່າເລີ່ມຕົ້ນ - ສ່ວນນີ້ ກຳ ນົດຕົວ ກຳ ນົດຄ່າເລີ່ມຕົ້ນ ສຳ ລັບທຸກໆພາກສ່ວນອື່ນໆຕາມການປະກາດຂອງມັນ.
  • frontend - ພາກນີ້ອະທິບາຍຊຸດຂອງຫູຟັງທີ່ຍອມຮັບການເຊື່ອມຕໍ່ຂອງລູກຄ້າ.
  • Backend - ສ່ວນນີ້ອະທິບາຍຊຸດຂອງເຊີບເວີທີ່ຕົວແທນຈະເຊື່ອມຕໍ່ເພື່ອເຊື່ອມຕໍ່ຂາເຂົ້າ.

ເພື່ອເຂົ້າໃຈຕົວເລືອກຕ່າງໆພາຍໃຕ້ການຕັ້ງຄ່າທົ່ວໂລກແລະຄ່າເລີ່ມຕົ້ນ, ອ່ານເອກະສານ HAProxy (ລິ້ງທີ່ຢູ່ໃນຕອນທ້າຍຂອງບົດຂຽນ). ສຳ ລັບ ຄຳ ແນະ ນຳ ນີ້, ພວກເຮົາຈະ ນຳ ໃຊ້ຄ່າເລີ່ມຕົ້ນ.

9. HAProxy ເມື່ອຖືກ ນຳ ໃຊ້ຈະມີບົດບາດ ສຳ ຄັນໃນໂຄງລ່າງພື້ນຖານດ້ານໄອທີຂອງທ່ານ, ດັ່ງນັ້ນການຕັ້ງຄ່າການຕັດໄມ້ເພື່ອມັນແມ່ນຂໍ້ ກຳ ນົດພື້ນຖານ; ນີ້ຊ່ວຍໃຫ້ທ່ານມີຄວາມເຂົ້າໃຈກ່ຽວກັບແຕ່ລະເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊທ໌ backend ຂອງທ່ານ.

ພາລາມິເຕີການບັນທຶກ (ເນັ້ນໃນພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້) ປະກາດເຊີຟເວີ Syslog ທົ່ວໂລກ (ເຊັ່ນ rsyslog ຄ່າເລີ່ມຕົ້ນໃນ CentOS) ເຊິ່ງຈະໄດ້ຮັບຂໍ້ຄວາມບັນທຶກ. ມີຫລາຍກວ່າ ໜຶ່ງ ເຊີບເວີທີ່ສາມາດປະກາດໄດ້ທີ່ນີ້.

ຈຸດຕັ້ງຄ່າເລີ່ມຕົ້ນຊີ້ໃຫ້ localhost (127.0.0.1) ແລະ local2 ແມ່ນລະຫັດສະຖານທີ່ໃຊ້ໃນຕອນຕົ້ນທີ່ໃຊ້ເພື່ອລະບຸຂໍ້ຄວາມບັນທຶກ HAProxy ພາຍໃຕ້ rsyslog.

10. ຕໍ່ໄປ, ທ່ານ ຈຳ ເປັນຕ້ອງບອກເຄື່ອງແມ່ຂ່າຍ rsyslog ວິທີການຮັບແລະປະມວນຜົນຂໍ້ມູນບັນທຶກ HAProxy. ເປີດເອກະສານການຕັ້ງຄ່າ rsyslog ໃສ່ /etc/rsyslog.conf ຫຼືສ້າງແຟ້ມ ໃໝ່ ພາຍໃນໄດເລກະທໍລີ /etc/rsyslog.d, ຍົກຕົວຢ່າງ /etc/rsyslog.d/haproxy.conf.

# vi /etc/rsyslog.d/haproxy.conf

ຄັດລອກແລະວາງການຕັ້ງຄ່າຕໍ່ໄປນີ້ເພື່ອລວບລວມບັນທຶກກັບ UDP ໃນພອດເລີ່ມຕົ້ນ 514.

$ModLoad imudp 
$UDPServerAddress 127.0.0.1 
$UDPServerRun 514 

ນອກຈາກນີ້ຍັງເພີ່ມສາຍເຫຼົ່ານີ້ເພື່ອສອນ rsyslog ໃຫ້ຂຽນສອງ file log ແຍກໂດຍອີງໃສ່ຄວາມຮຸນແຮງ, ບ່ອນທີ່ local2 ແມ່ນລະຫັດສະຖານທີ່ທີ່ໄດ້ ກຳ ນົດໄວ້ໃນ HAProxy ຕັ້ງຄ່າຂ້າງເທິງ.

local2.* 	/var/log/haproxy-traffic.log 
local2.notice 	/var/log/haproxy-admin.log

11. ບັນທຶກເອກະສານແລະປິດມັນ. ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນການບໍລິການ rsyslog ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງທີ່ຜ່ານມາ.

# systemctl restart rsyslog

12. ໃນພາກນີ້, ພວກເຮົາຈະສະແດງວິທີການຕັ້ງຄ່າໂປແກຼມໂປແກຼມໂປແກຼມ pro-end ດ້ານ ໜ້າ ແລະດ້ານຫລັງ. ກັບໄປທີ່ເອກະສານການຕັ້ງຄ່າ HAProxy ແລະດັດແປງສ່ວນທາງ ໜ້າ ແລະດ້ານຫຼັງແບບເບື້ອງຕົ້ນຄືດັ່ງຕໍ່ໄປນີ້. ພວກເຮົາຈະບໍ່ເຂົ້າໄປໃນ ຄຳ ອະທິບາຍລະອຽດຂອງແຕ່ລະພາລາມິເຕີ, ທ່ານສາມາດອ້າງອີງເອກະສານຢ່າງເປັນທາງການສະ ເໝີ ໄປ.

ການຕັ້ງຄ່າຕໍ່ໄປນີ້ຈະ ກຳ ນົດພາກສ່ວນຟັງທີ່ໃຊ້ເພື່ອຮັບໃຊ້ ໜ້າ ເວບ HAProxy Stats. ຕົວ ກຳ ນົດການຜູກມັດມອບ ໝາຍ ໃຫ້ຜູ້ຟັງຟັງທີ່ຢູ່ IP ( * ສຳ ລັບທຸກຄົນໃນກໍລະນີນີ້) ແລະພອດ (9000).

ສະຖິຕິຂອງການຕັ້ງຄ່າຊ່ວຍໃຫ້ ໜ້າ ສະຖິຕິເຊິ່ງສາມາດເຂົ້າເຖິງໄດ້ໂດຍໃຊ້ URI/stats (i. e. ລະຫັດ: http:/server_ip: 9000/ສະຖິຕິ ).

ການຕັ້ງຄ່າສະຖິຕິແມ່ນຖືກໃຊ້ເພື່ອເພີ່ມການກວດສອບຄວາມຖືກຕ້ອງຂັ້ນພື້ນຖານໃນເວລາທີ່ເຂົ້າເຖິງ ໜ້າ ເວັບ (ທົດແທນ haproxy ແລະ [email ດ້ວຍຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງຕົວເລືອກຂອງທ່ານ).

listen stats
    bind *:9000
    stats enable
    stats hide-version
    stats uri /stats
    stats admin if LOCALHOST
    stats auth haproxy:[email 

13. ການຕັ້ງຄ່າຕໍ່ໄປ ກຳ ນົດພາກສ່ວນ frontend ທີ່ເອີ້ນວ່າ TL (ທ່ານສາມາດຕັ້ງຊື່ຕາມຄວາມມັກຂອງທ່ານ). ພາລາມິເຕີຂອງໂຫມດ ກຳ ນົດຮູບແບບທີ່ HAProxy ດຳ ເນີນງານ.

ຕົວກໍານົດການ acl (Access Control List) ແມ່ນໃຊ້ເພື່ອຕັດສິນໃຈໂດຍອີງໃສ່ເນື້ອຫາທີ່ສະກັດຈາກຄໍາຮ້ອງຂໍ. ໃນຕົວຢ່າງນີ້, ຄຳ ຮ້ອງຂໍຖືວ່າເປັນ HTTP ທຳ ມະດາຖ້າມັນບໍ່ໄດ້ຖືກເຮັດຜ່ານ SSL.

ຫຼັງຈາກນັ້ນການຕັ້ງຄ່າຫົວຂໍ້ http-request set-header ຖືກໃຊ້ເພື່ອເພີ່ມ header HTTP ໃສ່ ຄຳ ຂໍ. ສິ່ງນີ້ຊ່ວຍແຈ້ງໃຫ້ Nginx ຊາບວ່າ ຄຳ ຮ້ອງຂໍເບື້ອງຕົ້ນແມ່ນເຮັດຜ່ານ HTTP (ຫຼືຜ່ານ port 80).

ຄຳ ສັ່ງແນະ ນຳ default_backend ຫລື use_backend ແມ່ນ ກຳ ນົດເຄື່ອງແມ່ຂ່າຍ backend, ໃນກໍລະນີນີ້, ອ້າງອີງໂດຍ TL_web_servers.

ໃຫ້ສັງເກດວ່າ HAProxy ຈະກັບຄືນ "503 Service ທີ່ບໍ່ມີຂໍ້ຜິດພາດ" ຖ້າການຮ້ອງຂໍບໍ່ໄດ້ຖືກຊີ້ ນຳ ໂດຍທິດທາງການ ນຳ ໃຊ້ຫຼືແບບ default_backend.

frontend TL
    bind *:80
    mode http
    acl http  ssl_fc,not
    http-request set-header X-Forwarded-Protocol http if http
    default_backend TL_web_servers

14. ຈາກນັ້ນພວກເຮົາ ຈຳ ເປັນຕ້ອງ ກຳ ນົດພາກສ່ວນ backend ບ່ອນທີ່ການຕັ້ງຄ່າຄວາມສົມດຸນຈະ ກຳ ນົດວິທີການທີ່ HAProxy ເລືອກເອົາ server back-end ເພື່ອ ດຳ ເນີນການ ຄຳ ຮ້ອງຂໍຖ້າບໍ່ມີວິທີການທົນນານຈະເອົາຊະນະການເລືອກນັ້ນ.

ການແນະ ນຳ ຄຸກກີ້ຊ່ວຍໃຫ້ຄວາມອົດທົນໂດຍອີງໃສ່ຄຸກກີ, ມັນໄດ້ແນະ ນຳ HAProxy ສົ່ງ cookie ທີ່ມີຊື່ວ່າ SERVERID ໃຫ້ກັບລູກຄ້າແລະເຊື່ອມໂຍງກັບ ID ຂອງເຊີບເວີທີ່ໃຫ້ການຕອບສະ ໜອງ ໃນເບື້ອງຕົ້ນ.

ຄຳ ສັ່ງຂອງເຊີບເວີແມ່ນໃຊ້ເພື່ອ ກຳ ນົດ server ທີ່ຢູ່ເບື້ອງເທິງໃນຮູບແບບ sever_name (ຕົວຢ່າງ: websrv1), server_IP: port ແລະ options.

ຕົວເລືອກ ໜຶ່ງ ທີ່ ສຳ ຄັນແມ່ນການກວດສອບເຊິ່ງບອກ HAProxy ໃຫ້ສືບຕໍ່ກວດເບິ່ງຄວາມພ້ອມຂອງເຊີບເວີແລະລາຍງານໃນ ໜ້າ ສະຖິຕິ.

backend TL_web_servers
    mode http
    balance roundrobin
    option  httpchk HEAD /
    cookie SERVERUID insert indirect nocache
    server  websrv1 10.42.0.200:80 cookie websrv1 check
    server  websrv2 10.42.0.21:80  cookie websrv2 check
    server  websrv3 10.42.0.34:80  cookie websrv3 check

ໃຫ້ ຄຳ ເຫັນຕໍ່ພາກສ່ວນດ້ານ ໜ້າ ແລະ ໜ້າ ຫຼັງອື່ນໆຕາມທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍທີ່ຕິດຕາມມາ. ບັນທຶກເອກະສານແລະປິດມັນ.

15. ດຽວນີ້ເລີ່ມບໍລິການ HAProxy ຄືນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ ໃໝ່.

# systemctl restart haproxy

16. ຕໍ່ໄປ, ຮັບປະກັນວ່າການບໍລິການ HTTP (port 80) ແລະ HTTPS (port 433) ຖືກເປີດໃນ firewall ເພື່ອຮັບເອົາ ຄຳ ຮ້ອງຂໍຂອງລູກຄ້າດັ່ງຕໍ່ໄປນີ້. ພ້ອມກັນນັ້ນ, ເປີດພອດ 9000 ໃນ firewall ສຳ ລັບເຂົ້າເຖິງ ໜ້າ ສະຖິຕິແລະໂຫລດການຕັ້ງຄ່າ firewall ອີກຄັ້ງ.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent –add-service=https
# firewall-cmd --zone=public --permanent --add-port=9000/tcp
# firewall-cmd --reload

ຂັ້ນຕອນທີ 3: ການທົດສອບການຕັ້ງຄ່າ HAProxy ແລະການເບິ່ງສະຖິຕິ

17. ດຽວນີ້ເຖິງເວລາຂອງມັນທີ່ຈະທົດສອບການຕັ້ງຄ່າ HAPrxoy. ຢູ່ໃນເຄື່ອງຄອມພິວເຕີຕັ້ງໂຕະໃນທ້ອງຖິ່ນທີ່ທ່ານ ກຳ ລັງເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍທັງ ໝົດ ຈາກ, ຕື່ມໃສ່ແຖວຕໍ່ໄປນີ້ໃນແຟ້ມເອກະສານ/etc/hosts ເພື່ອໃຫ້ພວກເຮົາສາມາດ ນຳ ໃຊ້ໂດເມນຂອງເວັບໄຊທ໌ທີ່ບໍ່ຢູ່.

10.42.0.247  www.tecmint.lan

18. ຫຼັງຈາກນັ້ນເປີດ browser ແລະ ນຳ ທາງໂດຍໃຊ້ທີ່ຢູ່ server ຫຼື domain site.

http://10.42.0.247/
OR
http://www.tecmint.lan/

19. ໃນການເຂົ້າເຖິງ ໜ້າ ສະຖິຕິຂອງ HAProxy, ໃຫ້ໃຊ້ທີ່ຢູ່ຕໍ່ໄປນີ້.

http://10.42.0.247:9000/stats

ຫຼັງຈາກນັ້ນ, ໃຊ້ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານທີ່ທ່ານໄດ້ ກຳ ນົດໄວ້ໃນເອກະສານການຕັ້ງຄ່າ HAProxy (ອ້າງອີງເຖິງພາລາມິເຕີ stats auth).

ຫຼັງຈາກເຂົ້າສູ່ລະບົບ ສຳ ເລັດແລ້ວ, ທ່ານຈະລົງຈອດຢູ່ ໜ້າ ສະຖິຕິຂອງ HAProxy ເຊິ່ງສະແດງໃຫ້ທ່ານເຫັນເຄື່ອງວັດແທກທີ່ປົກຄຸມສຸຂະພາບຂອງເຄື່ອງແມ່ຂ່າຍຂອງທ່ານ, ອັດຕາການຮ້ອງຂໍໃນປະຈຸບັນ, ເວລາຕອບສະ ໜອງ ແລະອື່ນໆ.

ເພື່ອສະແດງໃຫ້ເຫັນວ່າການລາຍງານສະຖານະພາບກ່ຽວຂ້ອງກັບລະຫັດສີເຮັດວຽກແນວໃດ, ພວກເຮົາໄດ້ເອົາເຄື່ອງແມ່ຂ່າຍ back-end ໜຶ່ງ ເຄື່ອງ.

ຂັ້ນຕອນທີ 4: ການຕັ້ງຄ່າ HTTPS ໃນ HAProxy ໂດຍໃຊ້ໃບຢັ້ງຢືນ SSL ທີ່ໄດ້ເຊັນດ້ວຍຕົນເອງ

20. ໃນພາກສຸດທ້າຍນີ້, ພວກເຮົາຈະສະແດງວິທີການຕັ້ງຄ່າ SSL/TLS ເພື່ອຮັບປະກັນການສື່ສານທັງ ໝົດ ລະຫວ່າງ HAProxy server ແລະລູກຄ້າ. HAProxy ສະ ໜັບ ສະ ໜູນ 4 ຮູບແບບການຕັ້ງຄ່າ HTTPS ທີ່ ສຳ ຄັນ, ແຕ່ ສຳ ລັບ ຄຳ ແນະ ນຳ ນີ້, ພວກເຮົາຈະ ນຳ ໃຊ້ SSL/TLS.

ໃນໂຫມດການໂຫຼດແບບ SSL/TLS, HAProxy ກຳ ນົດການຈະລາຈອນທາງຂ້າງຂອງລູກຄ້າແລະເຊື່ອມຕໍ່ໃນການຈະລາຈອນທີ່ຊັດເຈນກັບເຄື່ອງແມ່ຂ່າຍ backend.

ພວກເຮົາຈະເລີ່ມຕົ້ນໂດຍການສ້າງໃບຢັ້ງຢືນແລະກຸນແຈດັ່ງທີ່ສະແດງ (ຕອບ ຄຳ ຖາມໂດຍອີງໃສ່ລາຍລະອຽດຂອງບໍລິສັດຂອງທ່ານໃນລະຫວ່າງການສ້າງໃບຢັ້ງຢືນ, ດັ່ງທີ່ໄດ້ສະແດງຢູ່ໃນ ໜ້າ ຈໍ).

# mkdir /etc/ssl/tecmint.lan
# cd /etc/ssl/tecmint.lan/
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/tecmint.lan.key -out /etc/ssl/tecmint.lan.crt
# cd /etc/ssl/tecmint.lan/
# cat tecmint.crt tecmint.key >tecmint.pem
# ls -l

21. ຖັດໄປ, ເປີດເອກະສານການຕັ້ງຄ່າ HAProxy (/etc/haproxy/haproxy.cfg) ແລະດັດແກ້ພາກສ່ວນທາງ ໜ້າ.

frontend TL
    bind *:80
    bind *:443 ssl crt /etc/ssl/tecmint.lan/tecmint.pem
    redirect  scheme  https  if  !{ ssl_fc }
    mode http
    acl http  ssl_fc,not
    acl https ssl_fc
    http-request set-header X-Forwarded-Protocol http if http
    http-request set-header X-Forwarded-Protocol https if https
    default_backend TL_web_servers

ບັນທຶກເອກະສານແລະປິດມັນ.

22. ຫຼັງຈາກນັ້ນໃຫ້ບໍລິການ HAProxy ເລີ່ມຕົ້ນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ ໃໝ່.

# systemctl restart haproxy.service

23. ຕໍ່ໄປ, ເປີດເວັບບຼາວເຊີ້ແລະລອງເຂົ້າໃຊ້ເວບໄຊທ໌ອີກຄັ້ງ. ໂປຣແກຣມທ່ອງເວັບຈະສະແດງຂໍ້ຜິດພາດເພາະໃບຢັ້ງຢືນທີ່ເຊັນດ້ວຍຕົນເອງ, ກົດ Advanced ເພື່ອ ດຳ ເນີນການ.

ດຽວນີ້ ໝົດ ແລ້ວ! ທຸກໆການ ນຳ ໃຊ້ເວັບມີຄວາມຕ້ອງການຂອງມັນ, ທ່ານ ຈຳ ເປັນຕ້ອງອອກແບບແລະ ກຳ ຫນົດຄ່າດຸ່ນດ່ຽງການໂຫຼດເພື່ອໃຫ້ ເໝາະ ສົມກັບໂຄງລ່າງພື້ນຖານ IT ແລະຄວາມຕ້ອງການຂອງແອັບພລິເຄຊັນຂອງທ່ານ.

ເພື່ອໃຫ້ມີຄວາມເຂົ້າໃຈເພີ່ມເຕີມກ່ຽວກັບບາງຕົວເລືອກການຕັ້ງຄ່າທີ່ໃຊ້ໃນຄູ່ມືນີ້, ແລະໂດຍທົ່ວໄປວິທີການໃຊ້ HAProxy, ເບິ່ງເອກະສານສະບັບຊຸມຊົນຂອງ HAProxy ທີ່ເປັນທາງການຫຼືເອກະສານສະບັບ HAProxy Enterprise. ທ່ານສາມາດຂຽນ ຄຳ ຖາມຫລືຄວາມຄິດໃດໆຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.