Node js 服务器无法与 Ubuntu 中的 apache 代理协同工作

Node js 服务器无法与 Ubuntu 中的 apache 代理协同工作

我在端口 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 的推荐安全配置。

我希望这对你有帮助。

[]的

相关内容