如何将Apacheconfiguration为应用程序服务器的SSL代理?

我有一个运行的物理服务器:

  • 一个Apache(httpd)服务器
  • 另一个web服务器(比方说Tomcat为了争辩)在端口1234上

我可以将Apache服务器configuration为充当SSLstream量的代理,同时保持应用服务器不知情的SSL吗?

我想象的是:

  • stream量http://myserevr.com/app被redirect到https://myserver.com/app
  • 到https://myserver.com/app的stream量被代理到应用服务器。
  • 我的SSL证书只安装在Apache服务器上,而不安装在应用程序服务器上
  • 到Apache服务器的其他stream量( http://myserver.com/anotherapp )直接从Apache服务器提供

什么是最好的设置来实现这一目标? (在Ubuntu上,如果有问题的话)

如果Tomcat在标准端口(8080-HTTP,8009-AJP)上运行,请将其添加到您的Apacheconfiguration中:

<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> 

看看Apache的mod_proxy ,以及如何在“反向代理”模式下使用它。