mod_proxy_wstunnel モジュールを有効にして、バックエンドの WebSocket プロトコルを利用するアプリケーションをプロキシします。
例として、ローカルホストのポート 1337 で起動しているサンプルアプリケーションを、ポート 80 で待ち受ける httpd が /chat でプロキシする設定です。サンプルアプリケーションはこちらのの簡易チャットを利用します。
[root@localhost ~]# vi /etc/httpd/conf.modules.d/00-proxy.conf |
# 最終行に追記 |
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so |
[root@localhost ~]# vi /etc/httpd/conf.d/wstunnel.conf |
# 新規作成 |
ProxyRequests Off <Proxy *> Require all granted </Proxy> ProxyPass /socket.io/ http://127.0.0.1:1337/socket.io/ ProxyPassReverse /socket.io/ http://127.0.0.1:1337/socket.io/ ProxyPass /chat http://127.0.0.1:1337/ ProxyPassReverse /chat http://127.0.0.1:1337/ |
[root@localhost ~]# systemctl restart httpd |
SELinux を有効にしている場合は、アプリケーション起動ポートへのアクセス許可が必要です。
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 1337 |
設定をした /chat へアクセスして、アプリケーションが問題なく利用できるか確認してください。