web-dev-qa-db-ja.com

1つのVirtualHost内のApache複数のProxyPassエントリ

したがって、次の2つの構成があります。

一方では、バックエンドサーバー:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost
  ProxyPass /backend http://some_remote_ip:7000/backend
  ProxyPassReverse /backend http://some_remote_ip:7000/backend
  ProxyPassReverseCookiePath / /backend
  ProxyPassReverseCookieDomain some_remote_ip localhost
</VirtualHost>

一方、フロントエンドサーバー:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost
  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

これらを.confファイルにまとめると、ファイル内で最初に書き込まれたものだけが機能するので、技術的にはどちらも正しいです。

だから私の質問は、複数のProxyPassエントリを同じVirtualHost設定?

PS:アクセスできるようにする必要があります

  • localhost/backendのバックエンド
  • localhostのフロントエンド
6
DrKaoliN

問題は、同じ仮想ホスト(localhost)に複数のVirtualHostセクションがあるため、Apacheが1つだけ選択することです。これらの構成を連携させる場合は、ProxyPassディレクティブを単一のVirtualHost構成に配置する必要があります。

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost

  ProxyPass /backend http://some_remote_ip:7000/backend
  ProxyPassReverse /backend http://some_remote_ip:7000/backend
  ProxyPassReverseCookiePath / /backend
  ProxyPassReverseCookieDomain some_remote_ip localhost

  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
6
mtak