8 ເຄື່ອງແມ່ຂ່າຍໂປແກຼມໂປແກຼມ Reverse Reverse ສຳ ລັບ Linux


ເຄື່ອງແມ່ຂ່າຍຕົວແທນທີ່ລີ້ຊ່ອນແມ່ນປະເພດຂອງເຊີຟເວີຕົວແທນທີ່ຖືກ ນຳ ໃຊ້ລະຫວ່າງລູກຄ້າແລະ server back-end/source, ຍົກຕົວຢ່າງ, server HTTP ເຊັ່ນ NGINX, Apache, ແລະອື່ນໆຫຼືເຄື່ອງແມ່ຂ່າຍຂອງໂປແກຼມທີ່ຂຽນໃນ Nodejs, Python, Java, Ruby , PHP, ແລະຫລາຍພາສາການຂຽນໂປແກຼມອື່ນໆ.

ມັນເປັນປະຕູຫລືເຄື່ອງແມ່ຂ່າຍລະຫວ່າງກາງທີ່ໃຊ້ເວລາການຮ້ອງຂໍຂອງລູກຄ້າ, ສົ່ງຕໍ່ໃຫ້ກັບເຄື່ອງແມ່ຂ່າຍ back-end ໜຶ່ງ ເຄື່ອງຫຼືຕໍ່ມາ, ແລະຕໍ່ມາດຶງເອົາ ຄຳ ຕອບຈາກ server ແລະສົ່ງຄືນໃຫ້ລູກຄ້າ, ສະນັ້ນເຮັດໃຫ້ມັນປະກົດວ່າຄືກັບເນື້ອຫາ ມີຕົ້ນກໍາເນີດມາຈາກເຊີຟເວີຕົວແທນດ້ານຫຼັງ.

ໂດຍທົ່ວໄປ, ເຄື່ອງແມ່ຂ່າຍຕົວແທນທີ່ໃຊ້ງານໄດ້ແມ່ນຕົວແທນທີ່ປະເຊີນ ໜ້າ ຢູ່ພາຍໃນເຊິ່ງຖືກໃຊ້ເປັນ 'ໜ້າ ເບື້ອງຫຼັງ' ເພື່ອຄວບຄຸມແລະປົກປ້ອງການເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍ back-end ໃນເຄືອຂ່າຍສ່ວນຕົວ: ໂດຍປົກກະຕິມັນຖືກ ນຳ ໃຊ້ຢູ່ທາງຫລັງຂອງເຄືອຂ່າຍເຄືອຂ່າຍ.

ມັນຊ່ວຍໃຫ້ເຄື່ອງແມ່ຂ່າຍ back-end ບັນລຸຄວາມລັບໃນການປິດລັບເພື່ອເພີ່ມຄວາມປອດໄພຂອງພວກເຂົາ. ໃນພື້ນຖານໂຄງລ່າງ IT, ໂປແກຼມຕົວແທນດ້ານຫຼັງກໍ່ສາມາດເຮັດວຽກໄດ້ເຊັ່ນ firewall application, load balancer, TLS terminator, web accelerator (ໂດຍການເກັບ ກຳ ເນື້ອຫາທີ່ສະຖິດແລະເຄື່ອນໄຫວ), ແລະອື່ນໆອີກຫຼາຍຢ່າງ.

ໃນບົດຄວາມນີ້, ພວກເຮົາຈະພິຈາລະນາກ່ຽວກັບ 8 ເຄື່ອງແມ່ຂ່າຍຕົວແທນດ້ານເປີດ ໃໝ່ ທີ່ທ່ານສາມາດ ນຳ ໃຊ້ໃນລະບົບ Linux.

1. HAProxy

HAProxy (HAProxy, ເຊິ່ງ ໝາຍ ເຖິງໂປແກຼມສາມາດໃຊ້ໄດ້ສູງສຸດ), ເປັນໂປແກຼມທີ່ບໍ່ເສຍຄ່າ, ເປີດ, ໄວ, ເຊື່ອຖືໄດ້, ແລະມີໂປແກຼມໂປຼແກຼມທີ່ໃຊ້ໄດ້ສູງສຸດ ສຳ ລັບ TCP ແລະ HTTP ທີ່ໃຊ້ ສຳ ລັບສ້າງຄວາມພ້ອມສູງ.

HAProxy ແມ່ນ HTTP HTTP-proxy, ຕົວແທນ TCP ແລະ ທຳ ມະດາ, ໂປແກຼມ SSL/TLS terminator/ຜູ້ລິເລີ່ມ/offloader, ຕົວແທນທີ່ໃຊ້ໃນຖານຄວາມ ຈຳ, HTTP ປິດເຄື່ອງປິດ, ຜູ້ຄວບຄຸມການຈະລາຈອນ, ຕົວປ່ຽນເນື້ອຫາ, ໂປແກຼມປະຕູ FastCGI ແລະອື່ນໆ. ມັນຍັງເປັນການປ້ອງກັນ DDoS ແລະການລ່ວງລະເມີດການບໍລິການ.

ມັນຖືກຂັບເຄື່ອນດ້ວຍເຄື່ອງຈັກທີ່ບໍ່ມີການເຄື່ອນໄຫວໃນເຫດການ, ເຊິ່ງປະສົມປະສານກັບຊັ້ນ I/O ທີ່ມີຄວາມໄວສູງພ້ອມກັບຕາຕະລາງການຈັດ ລຳ ດັບທີ່ມີຄວາມ ສຳ ຄັນ, ມີຫລາຍເສັ້ນເຊິ່ງຊ່ວຍໃຫ້ມັນສາມາດຈັດການກັບການເຊື່ອມຕໍ່ພ້ອມໆກັນຫລາຍສິບພັນເຊື່ອມຕໍ່. ໂດຍສະເພາະ, HAProxy ໃຊ້ໂປໂຕຄອນ PROXY ເພື່ອສົ່ງຂໍ້ມູນການເຊື່ອມຕໍ່ຂອງລູກຄ້າໃຫ້ກັບໂປແກຼມ backend ຫຼືຕົ້ນສະບັບເພື່ອໃຫ້ແອັບພລິເຄຊັນໄດ້ຮັບຂໍ້ມູນທີ່ກ່ຽວຂ້ອງທັງ ໝົດ.

ບາງລັກສະນະພື້ນຖານຂອງ HAProxy ປະກອບມີໂປແກຼມ proxying, ການສະ ໜັບ ສະ ໜູນ SSL, ຕິດຕາມທັງສອງ server ແລະລັດຂອງມັນ, ຄວາມພ້ອມສູງ, ການດຸ່ນດ່ຽງການໂຫຼດ, ຄວາມ ໜຽວ (ຮັກສາຜູ້ເຂົ້າຊົມໃນ server ດຽວກັນເຖິງແມ່ນວ່າຜ່ານເຫດການຕ່າງໆ), ການປ່ຽນເນື້ອຫາ, ການຂຽນຄືນ HTTP ແລະການປ່ຽນເສັ້ນທາງ, ການປົກປ້ອງເຄື່ອງແມ່ຂ່າຍ, ການຕັດໄມ້ທ່ອນ, ສະຖິຕິແລະອື່ນໆ.

2. NGINX

NGINX, ເປັນໂປແກຼມ HTTP ທີ່ບໍ່ເສຍຄ່າ, ເປີດ, ມີປະສິດຕິພາບສູງ, ແລະເປັນທີ່ນິຍົມທີ່ສຸດຂອງ HTTP server ແລະ proxy ແທນ. ມັນຍັງເຮັດຫນ້າທີ່ເປັນເຄື່ອງແມ່ຂ່າຍຕົວແທນ IMAP/POP3. NGINX ແມ່ນເປັນທີ່ຮູ້ຈັກກັນດີ ສຳ ລັບປະສິດທິພາບສູງ, ສະຖຽນລະພາບ, ຊຸດຄຸນນະສົມບັດທີ່ອຸດົມສົມບູນ, ການຕັ້ງຄ່າແບບງ່າຍດາຍແລະມີຄວາມຍືດຫຍຸ່ນ, ແລະການຊົມໃຊ້ຊັບພະຍາກອນຕ່ ຳ (ໂດຍສະເພາະແມ່ນຮ່ອງຮອຍຄວາມ ຈຳ ນ້ອຍ)

ເຊັ່ນດຽວກັນກັບ HAProxy, NGINX ມີສະຖາປັດຕະຍະ ກຳ ທີ່ເປັນສະຖາປັດຕະຍະ ກຳ ດັ່ງນັ້ນມັນຈຶ່ງບໍ່ມີບັນຫາໃນການພົວພັນກັບຫລາຍພັນເຊື່ອມຕໍ່ພ້ອມກັນ, ຍ້ອນວ່າມັນ ນຳ ໃຊ້ໂປໂຕຄອນ PROXY ຂອງ HAProxy.

NGINX ສະ ໜັບ ສະ ໜູນ ໂປແກຼມສົ່ງຕໍ່ແບບເລັ່ງດ່ວນທີ່ເລັ່ງດ່ວນດ້ວຍການ ນຳ ໃຊ້ຖານຄວາມ ຈຳ ໂດຍໃຊ້ໂມດູນ ngx_http_proxy_module, ເຊິ່ງຊ່ວຍໃຫ້ການໂອນຜ່ານການຮ້ອງຂໍໄປຍັງເຊີຟເວີອື່ນໃນໂປໂຕຄອນອື່ນນອກ ເໜືອ ຈາກ HTTP ເຊັ່ນ FastCGI, uwsgi, SCGI ແລະບັນທຶກຂໍ້ມູນ.

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

ບົດຂຽນທີ່ມີປະໂຫຍດໃນເວັບເຊີຟເວີ Nginx ທີ່ທ່ານຢາກອ່ານ:

  • ວິທີຕິດຕັ້ງ Nginx Web Server ໃນ Ubuntu 20.04
  • ວິທີການຕິດຕັ້ງ Nginx ໃນ CentOS 8
  • ວິທີການເປີດໃຊ້ ໜ້າ ສະຖານະພາບ NGINX

3. Varnish HTTP Cache

Varnish HTTP Cache (ຫຼື Varnish Cache ຫຼື Varnish ງ່າຍດາຍ) ແມ່ນໂປແກຼມທີ່ບໍ່ເສຍຄ່າ, ເປີດ, ມີປະສິດຕິພາບສູງແລະມີຄວາມນິຍົມຫຼາຍໃນການໃຊ້ໂປແກຼມ cache-proxy ທີ່ເອີ້ນວ່າ web application accelerator, ຖືກອອກແບບເພື່ອປັບປຸງການເຮັດວຽກຂອງ HTTP ໂດຍໃຊ້ຖານຄວາມ ຈຳ ຂອງ server.

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

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

varnish ແມ່ນຍັງສາມາດຂະຫຍາຍໄດ້ - ມັນສາມາດຂະຫຍາຍໄດ້ໂດຍໃຊ້ Varnish Modules (VMODs) ແລະຜູ້ໃຊ້ສາມາດຂຽນໂມດູນທີ່ ກຳ ຫນົດເອງຫລືໃຊ້ໂມດູນທີ່ໃຫ້ໂດຍຊຸມຊົນ.

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

4. ທຣຳ

Træfɪk (ການຈະລາຈອນທີ່ຖືກອອກສຽງ) ແມ່ນໂປແກຼມເປີດໂປແກຼມ HTTP ຍ້ອນກັບແລະບໍ່ເສຍຄ່າ, ເປີດແລະທັນສະ ໄໝ ແລະໄວສົມຄວນ ສຳ ລັບການ ນຳ ໃຊ້ບໍລິການຈຸນລະພາກທີ່ຮອງຮັບລະບົບການດຸ່ນດ່ຽງການໂຫຼດຫຼາຍ. ມັນສາມາດໂຕ້ຕອບກັບຜູ້ໃຫ້ບໍລິການຕ່າງໆ (ຫຼືກົນໄກການຄົ້ນພົບການບໍລິການຫຼືເຄື່ອງມືຈັດວົງດົນຕີ) ເຊັ່ນ: Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm, ແລະ Zookeper.

ຄຸນລັກສະນະທີ່ ໜ້າ ຮັກຂອງມັນແມ່ນຄວາມສາມາດໃນການຈັດການການຕັ້ງຄ່າຂອງມັນໂດຍອັດຕະໂນມັດແລະແບບເຄື່ອນໄຫວດັ່ງນັ້ນການຄົ້ນພົບການຕັ້ງຄ່າທີ່ ເໝາະ ສົມ ສຳ ລັບການບໍລິການຂອງທ່ານ. ມັນເຮັດແບບນີ້ໂດຍການສະແກນໂຄງລ່າງພື້ນຖານຂອງທ່ານເພື່ອຊອກຫາຂໍ້ມູນທີ່ກ່ຽວຂ້ອງແລະຄົ້ນພົບວ່າບໍລິການໃດທີ່ໃຫ້ການບໍລິການໃດທີ່ຮ້ອງຂໍຈາກໂລກພາຍນອກ. ຜູ້ໃຫ້ບໍລິການບອກTræfɪkບ່ອນທີ່ສະ ໝັກ ຫລືບໍລິການຈຸລະພາກຂອງທ່ານຕັ້ງຢູ່.

ຄຸນລັກສະນະອື່ນໆຂອງTræfɪkແມ່ນໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ສຳ ລັບ WebSockets, HTTP/2, ແລະ GRPC, ແລະການໂຫຼດຄືນ ໃໝ່ ຢ່າງຕໍ່ເນື່ອງ (ປັບປຸງການຕັ້ງຄ່າຂອງມັນຢ່າງຕໍ່ເນື່ອງໂດຍບໍ່ຕ້ອງເລີ່ມຕົ້ນ ໃໝ່), HTTPS ໂດຍໃຊ້ໃບຢັ້ງຢືນ Let’s Encrypt (ສະ ໜັບ ສະ ໜູນ ໃບຢັ້ງຢືນແບບ ທຳ ມະຊາດ), ແລະເປີດເຜີຍ REST API. ມັນຍັງຮັກສາບັນທຶກການເຂົ້າເຖິງ, ແລະມັນສະຫນອງການວັດແທກ (Rest, Prometheus, Datadog, Statsd, InfluxDB).

ພ້ອມກັນນັ້ນ, ເຮືອTræfɪkພ້ອມດ້ວຍອິນເຕີເຟດຜູ້ໃຊ້ເວັບໄຊຕ໌ທີ່ໃຊ້ HTML ງ່າຍດາຍທີ່ໃຊ້ເພື່ອຮັກສາເບິ່ງເຫດການຕ່າງໆ. ມັນຍັງສະຫນັບສະຫນູນເຄື່ອງຕັດວົງຈອນ, ການຮ້ອງຂໍຄືນອີກຄັ້ງ, ການ ຈຳ ກັດອັດຕາແລະການກວດສອບພື້ນຖານ.

5. Server ຈອນ Apache

ຜະລິດຕະພັນການຄ້າໃນອະດີດເປັນເຈົ້າຂອງໂດຍ Yahoo ເຊິ່ງຕໍ່ມາໄດ້ຖືກມອບໃຫ້ແກ່ Apache Foundation, Apache Traffic Server ແມ່ນໂປແກຼມທີ່ສາມາດ ນຳ ໃຊ້ໄດ້ໂດຍບໍ່ເສຍຄ່າ, ເປີດແລະ ນຳ ໃຊ້ຢ່າງໄວວາ.

ເຄື່ອງແມ່ຂ່າຍຂອງການຈະລາຈອນຍັງເຮັດວຽກເປັນຜູ້ຄວບຄຸມການໂຫຼດແລະສາມາດເຂົ້າຮ່ວມໃນບັນດາ ລຳ ດັບຄວາມ ຈຳ ທີ່ສາມາດປ່ຽນໄດ້ ມັນເປັນທີ່ຮູ້ກັນວ່າໄດ້ຈັດການການຈາລະຈອນຫຼາຍກວ່າ 400 ວັນຕໍ່ວັນຢູ່ທີ່ Yahoo.

ມັນມີຊຸດຂອງການຮັກສາຊີວິດ, ການກັ່ນຕອງຫຼືການລະບຸຊື່ການຮ້ອງຂໍເນື້ອຫາ, ແລະສາມາດຂະຫຍາຍໄດ້ຜ່ານ API ທີ່ຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດສ້າງ plugins ທີ່ ກຳ ນົດເອງເພື່ອດັດແປງ headers HTTP, ຈັດການກັບການຮ້ອງຂໍ ESI, ຫຼືອອກແບບ algorithms cache ໃໝ່.

6. Squid Proxy Server

Squid ແມ່ນໂປແກຼມທີ່ສາມາດໃຊ້ໄດ້ໂດຍບໍ່ເສຍຄ່າ, ເປີດແລະເປັນທີ່ຮູ້ຈັກກັນດີແລະ da cache ຂອງເວບໄຊທ໌ທີ່ຮອງຮັບໂປແກຼມຕ່າງໆເຊັ່ນ HTTP, HTTPS, FTP ແລະອື່ນໆ. ມັນມີໂປແກຼມຕົວແທນປີ້ນກັບກັນ (httpd-accelerator) ທີ່ເຂົ້າໃຈການຮ້ອງຂໍທີ່ເຂົ້າມາ ສຳ ລັບຂໍ້ມູນທີ່ອອກໄປ.

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

7. ປອນ

A Pound ແມ່ນອີກປະການ ໜຶ່ງ ທີ່ບໍ່ເສຍຄ່າແລະເປີດ - ນຳ ໃຊ້, ນຳ ້ ໜັກ ເບົາແລະໂຫຼດ ໜ້າ ຈໍແລະ ສຳ ລັບເຄື່ອງແມ່ຂ່າຍເວັບ. ມັນຍັງເປັນເຄື່ອງສິ້ນສຸດ SSL (ທີ່ຕັດສິນໃຈການຮ້ອງຂໍ HTTPS ຈາກລູກຄ້າແລະສົ່ງພວກມັນເປັນ HTTP ທຳ ມະດາກັບເຄື່ອງແມ່ຂ່າຍ back-end), ສຸຂະອະນາໄມ HTTP/HTTPS (ທີ່ກວດສອບການຮ້ອງຂໍຄວາມຖືກຕ້ອງແລະຍອມຮັບເອົາແຕ່ຜູ້ທີ່ຖືກສ້າງຕັ້ງຂື້ນເປັນຢ່າງດີ), ແລະຄວາມລົ້ມເຫລວ -over server.

8. Apache HTTP Server

ສຸດທ້າຍ, ພວກເຮົາມີເຄື່ອງແມ່ຂ່າຍຂອງ Apache HTTP (ທີ່ເອີ້ນກັນວ່າ HTTPD), ເຄື່ອງແມ່ຂ່າຍເວັບທີ່ມີຊື່ສຽງທີ່ສຸດໃນໂລກ. ມັນຍັງສາມາດຖືກ ນຳ ໃຊ້ແລະຕັ້ງຄ່າເພື່ອເຮັດ ໜ້າ ທີ່ເປັນຕົວແທນດ້ານຫລັງ.

ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດ Checkout Skipper, ເດັກນ້ອຍຄົນ ໃໝ່ ຢູ່ໃນທ່ອນໄມ້. ມັນແມ່ນໂປແກຼມ HTTP ທີ່ເປີດໃຫ້ໃຊ້ງານແບບເປີດແລະເປີດໂປແກຼມແລະໂປແກຼມປ່ຽນແທນ ສຳ ລັບການປະກອບບໍລິການລວມທັງກໍລະນີການ ນຳ ໃຊ້ເຊັ່ນ Kubernetes Ingress.

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