nginx のインストールと設定 で nginx を導入した目的は、WebSocketを使用したWebアプリを提供することであった。 なので今回は実際に socket.io を使用した 簡単なWebアプリ にリバースプロキシでアクセスしてみる。
location /chat/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect http://127.0.0.1:3000/ https://kobalab.net/chat/;
proxy_redirect / /chat/;
proxy_cookie_path / /chat;
}
socket.io のプログラム例では接続の際に
let socket = io();
としているが、プロキシがパスを変更する場合はこれでは動作しない*4。 以下のような修正が必要*5。
let socket = io("/", { path: location.pathname + 'socket.io/' });