Listen Port Websocket melalui Reverse Proxy Nginx
Case berikut ketika memiliki backend web server yang memiliki websocket kemudian memiliki port custom agar dilewatkan atau di listen melalui reverse proxy nginx
Baca juga tentang : Konfigurasi Apache Virtual Host dan Reverse Proxy Nginx
File.conf di sisi reverse proxy nginx
Upstream dibuat beda untuk menginisialisasi ip dan custom port 8083
Dilanjutkan dengan baris berikut, perlu diperhatikan dalam tag tersebut listen port terdiri dari 2 yaitu port 443 untuk SSL dan port 8083 adalah port dari websocket.
Disisi coding web yang perlu diperhatikan untuk membuka koneksi websocket maka disesuaikan seperti ini, yaitu menambahkan diakhir url /wss
Yang perlu diperhatikan adalah sebagai berikut :
- location
/wss
untuk listen port 8083 tersebut proxy_read_timeout 86400s;
settingan batas waktu timeout socket yaitu 24 jam yang disesuaikan dengan kebutuhan- selinux berpengaruh, jika aktif pastikan untuk allow port untuk 8083
Sumber masalah
- https://github.com/ratchetphp/Ratchet/issues/100
- https://stackoverflow.com/questions/16979793/php-ratchet-websocket-ssl-connect
- https://stackoverflow.com/questions/51971774/ssl-websockets-with-nginx-cannot-connect
- https://serverfault.com/questions/693000/connect-to-websocket-server-without-specifying-port
- https://github.com/nicokaiser/nginx-websocket-proxy/blob/df67cd92f71bfcb513b343beaa89cb33ab09fb05/simple-wss.conf#L17
- https://www.nginx.com/blog/websocket-nginx/
- https://www.serverlab.ca/tutorials/linux/web-servers-linux/how-to-configure-nginx-for-websockets/