![带有代理和 SSL 的 Apache 没有监听端口 80](https://linux22.com/image/1592882/%E5%B8%A6%E6%9C%89%E4%BB%A3%E7%90%86%E5%92%8C%20SSL%20%E7%9A%84%20Apache%20%E6%B2%A1%E6%9C%89%E7%9B%91%E5%90%AC%E7%AB%AF%E5%8F%A3%2080.png)
我在 ubuntu 18.04 中运行 apache 2.4.29,并且在 000-default.conf 中有以下设置
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
SSLEngine on
SSLProxyEngine On
SSLCertificateKeyFile /pathtokey/privkey.pem
SSLCertificateChainFile /pathtokey/chain.pem
SSLCertificateFile /pathtokey/fullchain.pem
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Apache 正在充当 tomcat 服务器的代理,两者都使用 SSL。如果我使用带有 https 的 URL,apache 可以正常工作,但是当我尝试使用 http 时,我无法重定向到 https。我检查了一下,似乎 apache 不监听或处理来自端口 80 的连接(我也用 telnet 检查过了)
如果我删除 SSL 设置,并在端口 80 中保留一个虚拟主机,那么我就可以在没有 SSL 的情况下工作,在端口 80 中工作正常,但是当我仅启用 SSL 时,我可以使用带有 https 的服务器
有没有什么办法可以使用 http 并重定向到 https?
答案1
我发现了问题:我在 IPTABLES 中有一个路由,它将流量从端口 80 发送到 8080