Node.js 如何使用Ubuntu Apache2将具有多个节点进程的React应用程序从http迁移到安全的https

Node.js 如何使用Ubuntu Apache2将具有多个节点进程的React应用程序从http迁移到安全的https,node.js,ubuntu,https,apache2,Node.js,Ubuntu,Https,Apache2,我有一个React应用程序和两个Node Express(REST API)进程,在DigitalOcean Ubuntu20.04微滴上的http(Apache2)下运行。React应用程序在端口80上运行,而Node Express应用程序分别在端口4000和4001上运行 在我的代码中,http的所有实例都已替换为https。但是,端口4000和4001不像443那样是安全端口。我已安装Certbot,没有错误 在这种情况下,从http“迁移”到安全https的推荐方法是什么?我需要在Ap

我有一个React应用程序和两个Node Express(REST API)进程,在DigitalOcean Ubuntu20.04微滴上的http(Apache2)下运行。React应用程序在端口80上运行,而Node Express应用程序分别在端口4000和4001上运行

在我的代码中,
http
的所有实例都已替换为
https
。但是,端口4000和4001不像443那样是安全端口。我已安装Certbot,没有错误


在这种情况下,从http“迁移”到安全https的推荐方法是什么?我需要在Apache2 web服务器上设置反向代理吗?

您做错了。您应该设置一个进程管理器(like)来处理节点应用程序,然后使用HTTP代理公开这些应用程序端口,并使用
ProxyPass
ProxyPassReverse
将它们绑定到域和位置。看看这篇好文章。@Christolytras我用的是PM2,效果很好。在您链接的文章中没有显示如何让这两个节点进程在https下运行。仍在搜索答案。您将绑定PM2进程的域将具有使用Appache SSL模块(
sudo a2enmod SSL
)的SSL证书。在您的问题中,您试图直接匹配要服务的应用程序端口。如果您使用的是PM2,那么您不必将
http
实例更改为
https
,因为PM2将使用
http
绑定它们,然后Apache SSL模块将PM2进程代理到http服务器。有无数关于如何在apache中设置SSL的文章。使用
..
创建支持SSL的域,然后使用
ProxyPass/http://localhost:4000/