Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Apache和反向代理将domain.com/api路由到特定端口_Node.js_Apache_Api_Ssl_Reverse Proxy - Fatal编程技术网

Node.js 使用Apache和反向代理将domain.com/api路由到特定端口

Node.js 使用Apache和反向代理将domain.com/api路由到特定端口,node.js,apache,api,ssl,reverse-proxy,Node.js,Apache,Api,Ssl,Reverse Proxy,我有一个Node.js应用程序,它使用Express.js在端口1399上运行,为用户提供rest API。可以使用访问API。我正在使用让我们加密SSL 问题是,只有不带SSL的请求才能工作,因为Let's Encrypt只允许在默认端口(如端口443)上使用HTTPS。使用(https)会在Firefox上出现安全连接失败错误 为了能够在端口443以外的其他端口上提供SSL,我想将所有请求从路由到。如何使用Apache和反向代理实现这一点 我尝试了答案中建议的解决方案,在/etc/apach

我有一个Node.js应用程序,它使用Express.js在端口1399上运行,为用户提供rest API。可以使用访问API。我正在使用让我们加密SSL

问题是,只有不带SSL的请求才能工作,因为Let's Encrypt只允许在默认端口(如端口443)上使用HTTPS。使用(https)会在Firefox上出现安全连接失败错误

为了能够在端口443以外的其他端口上提供SSL,我想将所有请求从路由到。如何使用Apache和反向代理实现这一点

我尝试了答案中建议的解决方案,在/etc/apache2/sites available/000-default-le-ssl.conf中添加了以下内容:

<Virtual Host *:443>
    ...
    ProxyPass /api/ https://127.0.0.1:1399/api/
    ProxyPassReverse /api/ https://127.0.0.1:1399/api/
</VirtualHost>

...
ProxyPass/api/https://127.0.0.1:1399/api/
ProxyPassReverse/api/https://127.0.0.1:1399/api/
但是,当调用它时,会出现一个内部服务器错误。使用http://调用它不会给我任何响应,并且会使加载选项卡在10秒后超时。

解决方案:
  • 将这两行添加到
    前面的
  • 启用mod_proxy和mod_proxy_http:
  • 重新启动apache2:
  • ProxyPass        "/api"  "http://example.com:1399/"
    ProxyPassReverse "/api"  "http://example.com:1399/"
    
    sudo a2enmod proxy
    sudo a2enmod proxy_http
    
    sudo /etc/init.d/apache2 restart