如何配置 Apache 以充当应用程序服务器的 SSL 代理?

如何配置 Apache 以充当应用程序服务器的 SSL 代理?

我有一台运行以下操作的物理服务器:

  • Apache(httpd)服务器
  • 端口 1234 上的另一个 Web 服务器(为了便于讨论,我们假设为 Tomcat)

我可以将 Apache 服务器配置为 SSL 流量的代理,同时让应用程序服务器完全不知道 SSL 吗?

我的想象是:

实现这一目标的最佳设置是什么?(在 Ubuntu 上,如果这很重要)

答案1

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

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

相关内容