Nginx での WebSocket を通すリバースプロキシの設定です。
例として、バックエンドのポート 1337 で起動しているサンプルアプリケーションを、ポート 80 で待ち受ける Nginx が /chat でプロキシする設定です。 サンプルアプリケーションはこちらの [3] の簡易チャットを利用します。
[root@localhost ~]# vi /etc/nginx/nginx.conf |
# server セクション内を以下のように変更 server { listen 80 default_server; listen [::]:80 default_server; server_name www.hoge.com; location /socket.io/ { proxy_pass http://node01.hoge.com:1337/socket.io/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /chat { proxy_pass http://node01.hoge.com:1337/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { proxy_pass http://node01.hoge.com/; } } |
[root@localhost ~]# systemctl restart nginx |
SELinux を有効にしている場合は、アプリケーション起動ポートへのアクセス許可が必要です。
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 1337 |
設定をした /chat へアクセスして、アプリケーションが問題なく利用できるか確認してください。