Apacheリバースプロキシ - 単一ドメインを複数のIPに設定する方法

Apacheリバースプロキシ - 単一ドメインを複数のIPに設定する方法

Apache 2.4でDebian 10を使用する

いくつかの仮想マシンを実行しているサーバーがあります。 Webからアクセスできるようにしたいが、ドメイン名と無料のSSL証明書(高価なワイルドカード証明書ではない)を使用してURL文字列の右半分(後ろに「.com」)を使用してマッピングする必要があるIPを区別します。

私が理解しているのは、リバースプロキシがこれを達成することです。しかし、設定しようとすると失敗します。https://mydomain.com/nextcloudまたはhttps://mydomain.com/rocketchat

ルートレベル(https://mydomain.com) /var/www/html/からインデックスページを取得します。したがって、リバースプロキシは効果がありません。

だから私の質問は:default-ssl.confファイルを操作するにはどのようにエンコードする必要がありますか?

私は次のことを試しました:

ProxyPreserveHost On
ProxyPass         /rocketchat/         http://192.168.1.33:3000/
ProxyPassReverse  /rocketchat/         http://192.168.1.33:3000/

ProxyPass         /nextcloud/     http://192.168.1.16/nextcloud/
ProxyPassReverse  /nextcloud/     http://192.168.1.16/nextcloud/

私が望むことの例:

もし私が行くならhttps://mydomain.com/nextcloudその後、192.168.1.16に接続します。

もし私が行くならhttps://mydomain.com/rocketchatその後、192.168.1.33:3000に接続します。


私は問題を把握しようとしています。この図が私が望むことをしっかりとするのに役立つことを願っています。

チャート


編集:Apacheエラーログ(v61.localシステムはロケットチャットシステムです):

[Tue Apr 27 17:23:44.975875 2021] [ssl:error] [pid 22473] [remote 192.168.1.16:443] AH01961: SSL Proxy requested for v61.local:443 but not enabled [Hint: SSLProxyEngine]
[Tue Apr 27 17:23:44.976000 2021] [proxy:error] [pid 22473] AH00961: HTTPS: failed to enable ssl support for 192.168.1.16:443 (192.168.1.16)
[Tue Apr 27 17:27:16.346092 2021] [mpm_prefork:notice] [pid 22340] AH00169: caught SIGTERM, shutting down
[Tue Apr 27 17:27:16.488467 2021] [ssl:warn] [pid 22634] AH01909: v61.local:443:0 server certificate does NOT include an ID which matches the server name
[Tue Apr 27 17:27:16.577206 2021] [ssl:warn] [pid 22636] AH01909: v61.local:443:0 server certificate does NOT include an ID which matches the server name
[Tue Apr 27 17:27:16.587100 2021] [mpm_prefork:notice] [pid 22636] AH00163: Apache/2.4.38 (Debian) OpenSSL/1.1.1d configured -- resuming normal operations
[Tue Apr 27 17:27:16.587260 2021] [core:notice] [pid 22636] AH00094: Command line: '/usr/sbin/apache2'
[Tue Apr 27 17:27:39.035976 2021] [mpm_prefork:notice] [pid 22636] AH00169: caught SIGTERM, shutting down
[Tue Apr 27 17:27:39.165342 2021] [ssl:warn] [pid 22653] AH01909: v61.local:443:0 server certificate does NOT include an ID which matches the server name
[Tue Apr 27 17:27:39.269657 2021] [ssl:warn] [pid 22655] AH01909: v61.local:443:0 server certificate does NOT include an ID which matches the server name
[Tue Apr 27 17:27:39.286080 2021] [mpm_prefork:notice] [pid 22655] AH00163: Apache/2.4.38 (Debian) OpenSSL/1.1.1d configured -- resuming normal operations
[Tue Apr 27 17:27:39.286292 2021] [core:notice] [pid 22655] AH00094: Command line: '/usr/sbin/apache2'
[Tue Apr 27 17:27:44.967985 2021] [ssl:error] [pid 22656] [remote 192.168.1.16:443] AH01961: SSL Proxy requested for v61.local:443 but not enabled [Hint: SSLProxyEngine]
[Tue Apr 27 17:27:44.968100 2021] [proxy:error] [pid 22656] AH00961: HTTPS: failed to enable ssl support for 192.168.1.16:443 (192.168.1.16)
[Tue Apr 27 17:27:47.329941 2021] [ssl:error] [pid 22657] [remote 192.168.1.16:443] AH01961: SSL Proxy requested for v61.local:443 but not enabled [Hint: SSLProxyEngine]

ベストアンサー1

ほぼすべて来ました。あなたはテスト中ですhttps://mydomain.com/nextcloudしかし、テストをしなければなりません。https://mydomain.com/nextcloud/(先端にスラッシュがあることに注意してください)。

その理由は、ディレクトリがないため、自動「ディレクトリを/var/www/html/nextcloud処理するために末尾のスラッシュを追加します」コードがトリガーされず、代わりに404が表示されるためです。

持っていればhttps://mydomain.com/nextcloud/機能するには、リダイレクトするルールが必要です。https://mydomain.com/nextcloud到着https://mydomain.com/nextcloud/(ディレクトリを作成nextcloudまたは使用してください。これがよりクリーンなソリューションではRedirectない場合は問題ありません。)Redirect

おすすめ記事