web-dev-qa-db-ja.com

Apacheでリバースプロキシを実装しようとすると、500内部サーバーエラーが発生します。エラーなしでリクエストを別のサーバーに転送するにはどうすればよいですか?

あるサーバーから別のサーバーにリクエストを転送したい。ここに私の問題があります:

  • hr.example.com-ポート80-サーバーA
  • support.example.com-ポート80-サーバーB

ポート80のすべての要求は、ファイアウォールによってサーバーAに転送されます。

したがって、support.example.comのリクエストをサーバーAからサーバーBに転送する必要があります。これをApacheで実現するにはどうすればよいですか。

here からの回答に従いました。サーバーAのApache.confに次のコードを追加しましたが、「500内部サーバーエラー」が発生します。

<VirtualHost *:80>
  ServerName support.example.com    
  LoadModule proxy_module modules/mod_proxy.so    
  ProxyRequests Off
  <Proxy *>
     Require all granted
  </Proxy>    
  ProxyPass / http://IP-ADDRESS-SERVER-B:80/
  ProxyPassReverse / http://IP-ADDRESS-SERVER-B:80/
  <Location />
     Require all granted
   </Location>    
</VirtualHost>

注:サーバーAはWindowsサーバー2012とApache 2.4です

これらのリクエストを適切に転送するにはどうすればよいですか?

3
wouter205

正しい構成を提供してくれてありがとう@MrWhite :80に複数のvHostがあるため、追加モジュールmod_proxy_httpが必要で、server-BのIPアドレスをホスト名に変更する必要がありました。動作設定は次のとおりです。

<VirtualHost *:80>
support.example.com 
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


 ProxyRequests Off
    <Proxy *>
     Require all granted
    </Proxy>

  ProxyPass / http://support.example.com:80/
   ProxyPassReverse / http://support.example.com:80/
  <Location />
       Require all granted
   </Location>


</VirtualHost>
1
wouter205