【Node.js】Expressのreq.protocolが常にhttpになってしまう問題

SSL化しているサイトにも関わらずreq.protocolでプロトコルを取得しようとしても常にhttpになってしまう問題に遭遇。
調べてみたところリバースプロキシをSSLに対応させて、その設定をExpress側で取得することで可能になるようです。

Nginxのconfigに下記を追加


location / {
	proxy_set_header X-Forwarded-Proto     https; # これを追加
}

app.jsに下記を追加


const app = express();

app.enable('trust proxy'); // ←これを追加

参考