単一の仮想ホスト用の Apache 上のリバース プロキシ

単一の仮想ホスト用の Apache 上のリバース プロキシ

前文:

複数の仮想ホストを持つパブリックアクセス可能なサーバーを構成しました。 1 つの仮想ホストに対するリクエストは、バックエンド サーバーに送信する必要があります。 他のすべてのリクエストは、ローカルで処理する必要があります。

問題:

プロキシする必要がある Web サイトが有効になると、すべての仮想ホストのリクエストは、ProxyPass ディレクティブで指定された IP アドレスに渡されます。他の仮想ホストにアクセスしようとすると、プロキシされた Web サイトから Web ページが表示されます。プロキシされた Web サイトを無効にすると、他のすべての仮想ホストは通常​​の動作を再開し、ローカルでサービスが提供されます。

設定:

仮想ホスト用に公開アクセス可能なサーバー上に私が持っている設定: (他の仮想ホストは同じ設定のコピーです)

<VirtualHost *:80>
  ServerName www.mainsite.com
  ServerAlias mainsite.com
  ServerAdmin [email protected]

  DirectoryIndex index.php
  DocumentRoot /var/www/mainsite.com

  <Directory />
    AllowOverride None
  </Directory>

  LogLevel info
  ErrorLog /var/log/mainsite.com_err.log
  CustomLog /var/log/mainsite.com_access.log combined
</VirtualHost>

プロキシされる仮想ホスト用にパブリックにアクセス可能なサーバー上に設定した内容:

<VirtualHost *:80>

  ServerName calendar.othersite.com
  ServerAdmin [email protected]

  ProxyRequests Off 

  <Location />
    ProxyPass http://192.168.0.1/
    ProxyPassReverse http://192.168.0.1/
  </Location>

  <Proxy>
   Order Allow,Deny
   Allow from all
  </Proxy>


  TransferLog /var/log/othersite.com_access.log
  ErrorLog /var/log/othersite.com_err.log
  CustomLog /var/log/othersite.com.log combined
  LogLevel debug
</VirtualHost>

答え1

試す

sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled
sudo /etc/init.d/apache2 restart

関連情報