Websockets Support for Apache & NGINX

WebSockets ເປັນເທັກໂນໂລຢີໄຄລເອິນ-ເຊີບເວີ ທີ່ແພ່ຫຼາຍເຊິ່ງຈະຊ່ວຍໃນການແລກປ່ຽນຂໍ້ຄວາມ ແລະ ໂຕ້ຕອບແບບທັນທີພາຍໃນແອັບພລິເຄຊັນຂອງທ່ານໂດຍສ້າງການເຊື່ອມຕໍ່ TCP ແບບ full-duplex ຢ່າງຕໍ່ເນື່ອງລະຫວ່າງເຊີບເວີ ແລະ ບຣາວເຊີຂອງໄຄລເອິນ ການໃຊ້ຂ່ອງທາງການສື່ສານດັ່ງກ່າວສົ່ງຜົນໃຫ້ latency ຕໍ່າຫຼາຍ ແລະ ເກີດການໂຕ້ຕອບທີ່ວ່ອງໄວ ເຮັດໃຫ້ໝັ້ນໃຈໄດ້ວ່າ streaming ຜ່ານ proxies ແລະ firewalls ທັງ upstream ແລະ downstream ໃນເວລາດຽວກັນ

Huk-Com Cloud ຈັດກຽມ WebSockets ຂັ້ນສູງ ແລະ ເສີມດ້ວຍການປະສານລວມເທັກໂນໂລຢີນີ້ເຂົ້າກັບ Shared Load Balancer and NGINX-balancer ທ່ານຈຶ່ງສາມາດນໍາໃຊ້ໄດ້ເຖິງຈະບໍ່ມີ IP address ພາຍນອກແນບກັບເຊີບເວີຂອງທ່ານໂດຍການຮັບ proxy ພອດຕ່າງໆທີ່ແອັບ WebSockets ໃຊ້ໄປຍັງພອດດຽວ – 80 ສໍາລັບ HTTP ແລະ 443 ສໍາລັບ HTTPS

ວິທີການໃຊ້ WebSockets ທີ່ງ່າຍທີ່ສຸດສໍາລັບແອັບພລິເຄຊັນຄືວາງNGINX balancer ໄວ້ດ້ານໜ້າ-ສາມາດເບິ່ງລາຍລະອຽດໄດ້ທີ່ນີ້ແນວໃດກໍຕາມວິທີການດັ່ງກ່າວອາດຈະບໍ່ສອດຄ່ອງກັບຄວາມຕ້ອງການຂອງທ່ານໃນຂະນະທີ່ແອັບພລິເຄຊັນຍັງຄົງຕ້ອງການໃຊ້ເທັກໂນໂລຢີນີ້ເພື່ອນໍາໄປປະຕິບັດ ໃນກໍລະນີນີ້ເຮົາຮອງຮັບ WebSockets ຢ່າງເຕັມຮູບແບບສໍາລັບແອັບພລິເຄຊັນເຊີບເວີທີ່ມີຢູ່ ເຊິ່ງລວມເຖິງ Apache (ສໍາລັບການບໍລິການແອັບ PHP, Ruby ແລະ Python) ແລະ NGINX (ສໍາລັບແອັບ PHP ແລະ Ruby)

ຂະບວນການລວມ WebSockets ອາດແຕກຕ່າງກັນໄປໃນແຕ່ລະແອັບພລິເຄຊັນ ແຕ່ສໍາລັບການຕັ້ງຄ່າຝັ່ງເຊີບເວີ Jelastic ໄດ້ຈັດກຽມຕົວຢ່າງການກໍານົດຄ່າສໍາລັບແຕ່ລະໂໜດທີ່ກ່າວເຖິງເບື້ອງຕົ້ນ ດັ່ງນັ້ໜທ່ານສາມາດ uncomment ແລະ ແກ້ໄຂເລັກໜ້ອຍຕາມຂໍ້ກໍານົດຂອງແອັບພລິເຄຊັນ (ເຊັ່ນໝາຍເລກ listening port)

ການສ້າງ Environment ແລະການ Deploy Application

1. ຄລິກປຸ່ມ New Environment ດ້ານເທິງຊ້າຍຂອງແດຊບອດ

2. ພາຍໃນໜ້າຕ່າງ Environment Wizard ທີ່ປະກົດຂຶ້ນໃຫ້ສະລັບໄປທີ່ແທັບພາສາ ແລະ ເລືອກແອັບພລິເຄຊັນເຊີບເວີທີ່ທ່ານຕ້ອງການ (ຍົກຕົວຢ່າງແອັບພລິເຄຊັນ Apache PHP) ຈາກນັ້ນເລື່ອນ cloudlets ເພື່ອກໍານົດຈໍານວນຊັບພະຍາກອນ ຕັ້ງຊື່ environment ຂອງທ່ານແລ້ວຄລິກ Create

environment wizard

3. ພາຍໃນບໍ່ເທົ່າໃດນາທີ environment ຂອງທ່ານຈະປະກົດໃນໜ້າແດຊບອດ

environment for WebSockets created

4.ອັບໂຫຼດ ແລະ deploy ແອັບພລິເຄຊັນຂອງທ່ານທີ່ Deployment Manager ຫຼືຜ່ານບ່ອນເກັບມ້ຽໜໄລຍະໄກ GIT/SVN (ທ່ານສາມາດເບິ່ງຄໍາແນະນໍາເພີ່ມເຕີມໄດ້ທີ່ຄູ່ມີ deployment)

WebSockets application deployed

ໂປຣເຈັກທີ່ທ່ານ deploy ແລ້ວຈະສະແດງລາຍການໃນສ່ວນດ້ານລຸ່ມຂອງແຜງຄວບຄຸມ environment

ການກໍານົດຄ່າເຊີບເວີ ແລະ ແອັບພລິເຄຊັນ

WebSockets ພາຍໃນ Apache server ຮອງຮັບໂມດູນ proxy_wstunnel_module ເຊິ່ງຖືກເພີ່ມໂດຍຄ່າເລີ່ມຕົ້ນເມື່ອສ້າງເຊີບເວີສໍາລັບ NGINX server ນັ້ນຈະໃຊ້ຄວາມສາມາດຂອງການຝັງ proxy ເຊິ່ງການເຊື່ອມຕໍ່ WebSockets ຄ້າຍຄືກັບວິທີ NGINX-balancer ເຮັດດັ່ງນັ້ນມາເລີ່ມຕົ້ນກໍານົດຄ່າແອັບພລິເຄຊັນຂອງທ່ານຕາມຂັ້ນຕອນນີ້

1. ຄລິກປຸ່ມ Config ຖັດຈາກໂໜດແອັບເຊີບເວີຂອງທ່ານ

Apache config

2. ໃນແທັບ Configuration Manager ເຮັດຕາມຂັ້ນຕອນດັ່ງນີ້:

  • ສໍາລັບ Apache app server

ເຂົ້າໄປທີ່ໄດເຣັກທໍຣີ conf ແລ້ວຫາໄຟລ httpd.confຍົກເລີກຄອມເມັ້ນຄໍາສັ່ງດ້ານລຸ່ມນີ້ (ປະມານວັກທີ 962)

<Location /ws>  
   ProxyPass ws://127.0.0.1:<PORT>  
   ProxyPassReverse ws://127.0.0.1:<PORT>  
</Location>

ຈາກນັ້ນປ່ຽນພາຣາມິເຕີທັງສອງເປັນໝາຍເລກພອດທີ່ແອັບພລິເຄຊັນ WebSockets ຂອງທ່ານ listen (ເຊັ່ນ 9000)

ກວດສອບໃຫ້ແນໃຈວ່າທ່ານໄດ້ກໍານົດຄ່າດັ່ງຮູບນີ້

Apache httpd conf

ກົດປຸ່ມ Save ດ້ານເທິງເພື່ອບັນທຶກ

  • ສໍາລັບ NGINX app server

ເຂົ້າໄປທີ່ໄດເຣັກທໍຣີ conf ເລືອກໄຟລ nginx.conf ແລ້ວຄົ້ນຫາ #Websocket ແລະຍົກເລີກຄອມເມັ້ນຄໍາສັ່ງຕໍ່ໄປນີ້:

upstream websocket {  
    server 127.0.0.1:<PORT>;  
 }  
…  
location /ws {  
        proxy_pass http://websocket;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "Upgrade";  
    }

ຈາກນັ້ນແທນທີ່ຄ່າ <PORT> ດ້ວຍໝາຍເລກພອດທີ່ກ່ຽວຂ້ອງ ແລະ ກົດປຸ່ມSave

NGINX WebSockerts configs

3. ທັງໝົດນີ້ຄືການກໍານົດຄ່າເຊີບເວີທີ່ທ່ານຕ້ອງສ້າງ ຈາກນັ້ນກໍານົດຄ່າແອັບພລິເຄຊັນທີ່ທ່ານ deploy ໂດຍເຂົ້າໄປທີ່ໄຟລການກໍານົດຄ່າຂອງແອັບພິເຄຊັນທ່ານເພື່ອຕັ້ງຄ່າ WebSocketsແລະປັບ ws path ທີ່ມີຢູ່ໃນໄຟລຕາມຮູບແບບຖັດໄປ:

ws://{env_domain}{path_to_ws_file}

ໂດຍທີ່

  • {env_url} ແທນທີ່ດ້ວຍໂດເມນຂອງ environment ທ່ານ (ສາມາດເບິ່ງໄດ້ທີ່ໃຕ້ຊື່ environment ທີ່ແດຊບອດ)
  • {path_to_ws_file} ຈໍາເປັນຕ້ອງປ່ຽນເສັ້ນທາງໄປທີ່ໄຟລເຊິ່ງຄວນເຂົ້າເຖິງໄດ້ເມື່ອສ້າງການເຊື່ອມຕໍ່ WebSockets

application WebSockets path

4. Save ແລະ Restartແອັບພລິເຄຊັນເຊີບເວີຂອງທ່ານ

Apache restart

5. ຫຼັງຈາກ Restart ສໍາເລັດແລ້ວຄລິກປຸ່ມOpen in Browserເພື່ອຮຽກໃຊ້ແອັບພລິເຄຊັນຂອງທ່ານໃນແທັບບຣາວເຊີໃໝ່

open in browser

6. ທ່ານຈະເຫັນວ່າແອັບພລິເຄຊັນນໍາໃຊ້ໄດ້ແລ້ວ

WebSockerts chat application

ທ່ານຈະໄດ້ຮັບປະໂຫຍດຈາກການຖ່າຍໂອນຂໍ້ຄວາມທີ່ວ່ອງໄວຢ່າງເຫັນໄດ້ຊັດຈາກການນໍາໃຊ້ WebSockets Protocol