Nodejs+socket.io+express+https その3 URL のポート番号を消す

javascript

Nodejsアクセス側から、アクセスするポート番号を消すときに試行錯誤した結果を記載します。

動作確認プログラム

nginx設定ファイルの変更。

/etc/nginx/sites-available/###.confに下記コードを追加。

    location /example/ {
      proxy_set_header    Host    $host;
      proxy_set_header    X-Real-IP    $remote_addr;
      proxy_set_header    X-Forwarded-Host       $host;
      proxy_set_header    X-Forwarded-Server    $host;
      proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;

        proxy_pass    https://###:$$$/;
    }

###:サーバー名
$$$:ポート番号

expressの処理追加

この状態でhttps://###/example/にアクセスすると、“can not /example”が表示される。
対応するポートアクセスの”server.js”に下記コードを追加する。

app.get('/example', (req, res) => {
   res.render('index.ejs',
        {frendName: 'ゲスト' ,
         myidf: myID ,
         fiidf: f1ID });
});

これだけでは、”ejsファイル”の内容が表示されるだけで、クライアント側に静的ファイル(css及びjavascript)が提供されていないので、下記コードを追加する。

app.use('/example', express.static(__dirname + '/public'));
app.set('views', './example/views');
1行目 提供する静的ファイルを保存先を指定する。
2行目 提供するejsファイルの保存先を指定する。
※この状態でクライアント側にはejsファイルが正常に表示されるが、socket.ioの設定がされていないため、正常には動作しない。次回はsocketio側も対応してみます。

参考サイト

用語説明

コメント