我正在尝试使用 apache 作为反向代理,并从底层 Node Js 应用程序中卸载 SSL 处理。我已经定义了配置,但系统似乎并没有尝试执行反向代理部分。例如,在 ssl_error_log 中,我看到以下内容:
[错误] 文件不存在:/etc/httpd/htdocs
每当我访问站点的根目录时,似乎都会发生这种情况。我不确定,但它似乎试图从该目录提供页面。我的 apache 配置如下:
<VirtualHost *:443>
ServerName portal.somewhere.com
SSLEngine On
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
SSLCertificateFile /etc/pki/tls/certs/wildcard.somewhere.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/wildcard.somewhere.com.key
ProxyPass / http://12.7.20.78:80/
ProxyPassReverse / http://12.7.20.78:80/
ErrorLog logs/portal.somewhere.com-error_log
CustomLog logs/portal.somewhere.com-access_log common
</VirtualHost>
当我通过 ssh 连接到 12.7.20.78 并运行 tcpdump 时,我看不到任何活动到达该机器。为了进行调试,我能够将上述配置翻转为在端口 80 上运行的配置(无 SSL):
<VirtualHost *:80>
ServerName portal.somewhere.com
ProxyRequests Off
ProxyPass / http://12.7.20.78:80/
ProxyPassReverse / http://12.7.20.78:80/
ErrorLog logs/portal.somewhere.com-error_log
CustomLog logs/portal.somewhere.com-access_log common
</VirtualHost>
运行此配置时,系统将转发请求并从机器提供页面:http://12.7.20.78没有任何问题。tcpdump 已确认这一点。
答案1
嗯,443 上设置了两个配置,造成了混乱。删除了旧的。