4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

httpsで構築したnodejsアプリケーションをApacheのリバースプロキシで転送する

Posted at

#80,443以外のポートで構築したアプリケーションをリバースプロキシで転送する

掲題のとおり、Apache 443ポートから127.0.0.1ポート3000で動作中のnodejsアプリケーションに転送する

通常、WEBアプリケーションは、80ポート、443ポートで構築するため別段リバースプロキシを必要としないが、特にPHP以外の言語で構築した場合、GoやNodejsなどは別途任意のポートで構築すると思います。
その際の80あるいは443ポートで待ち受ける際のリバースプロキシの設定がうまくいかなかったので、備忘録として残しておきます。

※参照元
https://blog.neet-shikakugets.com/construct-reverse-proxy-using-apache

##まずは、ベースとなるアプリケーションの前面にたつリバースプロキシなしのSSL設定の場合


<VirtualHost *:443>
# SSL
SSLEngine on
SSLCertificateFile  /var/www/[SSL証明書へのパス]/cert.pem
SSLCertificateKeyFile  /var/www/[SSL証明書発行時の秘密鍵へのパス]/privkey.pem
 
</VirutalHost>

上記の設定で問題なし

##これに、一般的なリバースプロキシ転送を行おうとする場合

<VirtualHost *:443>
# SSL
SSLEngine on
SSLCertificateFile  /var/www/○○○○○/cert.pem
SSLCertificateKeyFile  /var/www/○○○○/privkey.pem
# Proxy設定
ProxyRequests Off
ProxyPass / https://your-original.com:3000/
ProxyPassReverse / https://your-original.com:3000/
</VirtualHost>

※このままの設定でなかなか解決せずかなりハマってしまいました。

さて、実際には上記の設定だけでは無効で以下のようにする必要がある

<VirtualHost *:443>
# SSL
SSLEngine on
SSLProxyEngine On # <<<-この設定が必要になる
SSLCertificateFile  /var/www/○○○○/cert.pem
SSLCertificateKeyFile  /var/www/○○○○/privkey.pem
# Proxy設定
ProxyRequests Off
ProxyPass / https://your-original.com:3000/ # <<< 末尾の/は必須のようです。
ProxyPassReverse / https://your-original.com:3000/ # <<< 末尾の/は必須のようです。
</VirtualHost>

上記設定で例えば、
https://your-original.com から https://your-original.com:3000 へと転送される。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?