![带有 SSL 的 Apache 反向代理不起作用](https://linux22.com/image/691233/%E5%B8%A6%E6%9C%89%20SSL%20%E7%9A%84%20Apache%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试使用 apache(2.4) 作为 tomcat(7) 的反向代理,当我仅使用 http 时它可以正常工作。
http配置:
<VirtualHost *:80>
ServerName abc.domain.org
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
这完全没问题。
但当我想让 apache 处理 https 时,它根本不起作用。我尝试了很多方法,但最终只看到一个带有“index of /”的平面页面
https 配置:
<VirtualHost *:443>
ServerName abc.domain.org
SSLEngine On
SSLCertificateFile path
SSLCertificateKeyFile path
SSLCertificateChainFile path
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
如能得到任何帮助或提示我将非常感激。
编辑:如果您需要更多信息,请随时询问。
编辑2:
apachectl -s 的输出:
VirtualHost configuration:
*:80 abc.domain.org (/etc/httpd/conf.d/proxy.conf:1)
*:443 is a NameVirtualHost
default server abc.domain.org (/etc/httpd/conf.d/ssl.conf:56)
port 443 namevhost abc.domain.org (/etc/httpd/conf.d/ssl.conf:56)
port 443 namevhost abc.domain.org (/etc/httpd/conf.d/proxy.conf:24)
ServerRoot: "/etc/httpd"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/etc/httpd/logs/error_log"
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
Mutex authdigest-client: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex authn-socache: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/run/httpd/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex authdigest-opaque: using_defaults
PidFile: "/run/httpd/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="apache" id=48
Group: name="apache" id=48
答案1
好了,您有两个具有相同的 SSL 虚拟主机ServerName
。这意味着只有第一个会收到 SSL 请求。
看起来它是某种形式的默认虚拟主机,/etc/httpd/conf.d/ssl.conf
您可以将其删除。