将Apache ssl端口443转发到Tomcat http端口

时间:2018-11-16 08:25:38

标签: apache ssl tomcat8 proxypass

我的tomcat在端口7778的linux框中独立运行。我已配置apache在端口443的ssl上运行。

我的httpd.conf如下:

    Listen 80
<VirtualHost *:80>
    ServerName www.domain.com
    Redirect / https://www.example.com
</VirtualHost> -->
ProxyPass         /  http://localhost:7778/website
ProxyPassReverse  /  http://localhost:7778/website

我的ssl.conf如下:

Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile    /path/to/certificate/file
SSLCertificateKeyFile /path/to/key
</VirtualHost>

我的server.xml连接器如下:

<Connector port="7778" protocol="HTTP/1.1"
                proxyName="www.domain.com" proxyPort="80" />

问题是我的Apache无法在7778端口上重定向到Tomcat,并显示503错误。

1 个答案:

答案 0 :(得分:0)

两个步骤:

1 :首先确认您的Tomcat正常。

确保您可以连接到http://localhost:7778/website并获得预期的响应。

然后,要获得代理支持,请修改您的连接器:

<Connector port="7778" protocol="HTTP/1.1" proxyName="www.example.com" proxyPort="80" />

2 修复您的Apache配置

我在这里假设:

  • 尝试http://www.example.com时,您将被重定向到https://www.example.com
  • 尝试使用https://www.example.com时,会收到Tomcat的响应

    Listen 80
    <VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com
    
        CustomLog "logs/80_access.log" combined
        ErrorLog  "logs/80_error.log"
    
        Redirect / https://www.example.com
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName www.example.com
        ServerAlias example.com
    
        # While debugging
        LogLevel debug
        CustomLog "logs/443_access.log" combined
        ErrorLog  "logs/443_error.log"
    
        SSLEngine On
        SSLCertificateFile    /path/to/certificate/file
        SSLCertificateKeyFile /path/to/key
    
        # Proxy to Tomcat
        ProxyRequests Off
        ProxyPass        / http://localhost:7778/website
        ProxyPassReverse / http://localhost:7778/website
    
    </VirtualHost>
    

您可能需要调整的内容

  • 日志文件目录
  • 证书文件目录
  • LogLevel,请删除调试模式,
  • 确保已加载所需的模块。 apachectl -t会告诉您是否缺少任何内容。