web-dev-qa-db-ja.com

アプリケーションサーバーへのSSLプロキシとして機能するようにApacheを構成するにはどうすればよいですか?

実行する物理サーバーが1つあります。

  • apache(httpd)サーバー
  • ポート1234上の別のWebサーバー(議論のためにTomcatとしましょう)

アプリケーションサーバーがSSLを幸福に認識しないようにしながら、SSLトラフィックのプロキシとして機能するようにApacheサーバーを構成できますか?

私が想像するのは:

  • http://myserevr.com/app へのトラフィックは https://myserver.com/app にリダイレクトされます
  • https://myserver.com/app へのトラフィックはアプリケーションサーバーにプロキシされます。
  • 私のSSL証明書はApacheサーバーにのみインストールされ、アプリケーションサーバーにはインストールされません
  • Apacheサーバーへの他のトラフィック( http://myserver.com/anotherapp )は、Apacheサーバーから直接提供されます。

これを達成するための最良の設定は何ですか? (Ubuntuでは、それが重要な場合)

1
ripper234

Tomcatが標準ポート(8080-HTTP、8009-AJP)で実行されている場合は、これをApache構成に追加します。

<VirtualHost _default_:443>
    .......
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia On

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    <Location /app>
        ProxyPass        ajp://localhost:8009/app
        ProxyPassReverse ajp://localhost:8009/app
    </Location>

    #<Location /app>
    #    ProxyPass        http://localhost:8080/app
    #    ProxyPassReverse http://localhost:8080/app
    #</Location>

    <Location "/app/WEB-INF/">
        deny from all
    </Location>    
   ..........
</VirtualHost>

<VirtualHost *:80>
   ...........
    RewriteEngine On
    RewriteRule ^/app$  https://%{HTTP_Host}%{REQUEST_URI} [R]
   ...........
</VirtualHost>
2
drafael

Apacheの mod_proxy と、「リバースプロキシ」モードでの使用方法をご覧ください。

0
Andy Smith