因此,我基本上尝试设置 3 个不同的 SSL 虚拟主机。我有以下设置
beta.website.com
api-beta.website.com
app-beta.website.com
beta 是我们的旧平台,api 和 app 是我们新平台的一部分,它们位于端口 8000(节点 api)和 3000(节点应用程序)上。因此,如果我使用端口号通过 http 访问网站,一切都会正常。但是,我正在尝试设置代理通行证,我很快就能完成所有工作了。
<VirtualHost *:443>
ServerName api-beta.website.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/website.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/website.com.key
SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt
ProxyPass / http://0.0.0.0:8000/
ProxyPassReverse / http://0.0.0.0:8000/
ErrorLog logs/ssl_error_api_log
TransferLog logs/ssl_access_api_log
LogLevel warn
</VirtualHost>
<VirtualHost *:443>
ServerName app-beta.website.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/website.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/website.com.key
SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000/
ErrorLog logs/ssl_error_app_log
TransferLog logs/ssl_access_app_log
LogLevel warn
</VirtualHost>
除此之外,我还有主 beta.website.com 的虚拟主机,但在这里发布有点长,我不认为这是问题所在。所以目前的情况是这样的
https://beta.website.com有效,指向正确位置并具有 SSL
https://api-beta.website.com有效,指向正确位置并具有 SSL
https://app-beta.website.com几乎可以工作,直接指向 api-beta.website.com 内容,但具有正确的 URL 和 SSL。
基本上,我试图将内容从 :3000 代理传递到 app-beta.website.com,但它显示的内容来自 :8000。我尝试手动转到 :3000 和 :8000,它们都按预期工作并在 http 下显示正确的内容。关于我需要更改什么,有什么想法吗?
答案1
对于其他需要处理此问题的人。据我所知,问题是我的高端口号 (8000) 位于我的低端口号 (3000) 之前。切换 SSL 配置中的虚拟主机顺序并重新启动 apache 解决了该问题。请有更多知识的人告诉我原因。