我在端口 8080 上运行 Node js 服务器。Apache 在端口 80 上运行https. 我想在 Apache 中运行 Nodehttps。我按照教程这里。这是我的配置文件。
Node.conf:
`<VirtualHost *:80>
ServerName example.com
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
<Location /node>
ProxyPass https://127.0.0.1:8080
ProxyPassReverse https://127.0.0.1:8080
</Location>
<Directory "/var/www/html/node">
AllowOverride All
</Directory>
</VirtualHost>
问题:
网站工作如果投入:http://mys-site.com:8080/test?
我想要的:https://my-site.com/test?
答案1
您的代理配置(Apache)似乎没有监听端口 443。
你基本上必须改变两件事:
1-确保 Apache 正在监听 443。
检查你的 Apache 配置文件并确保他在 443 上监听。
在 Centos 上/etc/httpd/conf/httpd.conf
类似这样的条目:
Listen 80
Listen 443
2 - 更正您的 Apache 配置
因此您Node.conf
需要响应到端口 443 的入站连接:
<VirtualHost *:443>
ServerName example.com
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
<Location /node>
ProxyPass https://127.0.0.1:8080
ProxyPassReverse https://127.0.0.1:8080
</Location>
<Directory "/var/www/html/node">
AllowOverride All
</Directory>
</VirtualHost>
请注意,我只更改了 Vhost 配置上的监听端口。您还需要检查 TLS 配置。也许您的 Apache 配置已将其设置在不同的文件中,例如/etc/httpd/conf.d/00-ssl.conf
。无论如何,您应该检查https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations有关 TLS 的推荐安全配置。
我希望这对你有帮助。
[]的