nginx 在AWS EC2上使用SSL的自定义域(包含多个应用程序)

zte4gxcn  于 2023-03-01  发布在  Nginx
关注(0)|答案(2)|浏览(208)

我一直在网上广泛研究这一点,我找不到任何结果,符合我的情况下,原谅我,如果这是一个重复不知何故。
我有一个AWS EC2示例,在不同的端口上运行多个应用程序。为了方便这个例子,我们假设我有一个Node服务器在3001,一个Python服务器在8001,两个应用程序都是停靠的,我已经Map了端口(3001:3001和8001:8001)。
在部署了这些应用程序并确保它们运行良好后,我购买了一个已经附带SSL证书的域。
我的问题是:如何使用https://api.mydomain.com/node这样的URL连接节点服务器,使用https://api.mydomain.com/python连接python服务器?是的,我需要HTTPS,因为它们充当API,所以客户端需要访问这些端点,浏览器会阻止来自HTTPS网站的HTTP请求(我有一个使用https://app.mydomain.com的静态应用程序)
我找到的解决方案是创建一个负载平衡器并使用AWS生成证书,或者使用NGINX并使用OpenSSL生成证书,但我已经有了证书,至少在我看来,这应该像说 "嘿,反向代理,使用此域并侦听443,但如果您收到/node,则转到3001 http端口;如果您收到/python,则转到8001 http端口"
老实说,我不知道很多关于AWS负载平衡器,甚至更少关于NGINX,所以我需要一些帮助,我可以简单地配置这个权利,所以我可以创建我的DNS提供商的子域,并指向EC2的公共IPv4,然后平衡器/代理将处理转发工作(我猜).
我更喜欢一个免费的解决方案,因为这个应用程序只是一个个人项目,我不打算支付更多的不仅仅是服务器上,所以似乎NGINX是要走的路,但我愿意接受任何更简单的解决方案,这个问题,我只需要知道热正确设置的东西有这种行为。

n1bvdmb6

n1bvdmb61#

您可以创建一个API GatewayApplication Load Balancer来放置在EC2示例前面。您可以使用APIGw / ALB将现有证书导入AWS Certificate Managerassociate以终止SSL。

1tu0hz3e

1tu0hz3e2#

由于这是一个个人项目,您可以执行以下操作来实现这一点,而不需要使用任何额外的aws服务。
1.在同一ec2示例的端口443上设置nginx,并将其配置为将发往/node的请求发送到3001,将发往/python的请求发送到8001。您可以使用已有的SSL证书。我假设您拥有的证书是针对api.mydomain.com
1.为api.mydomain.com添加一条DNS A记录,指向ec2示例的公共IP/弹性IP。
1.允许连接到安全组中的端口443,这样就可以从外部连接到运行在ec2示例中的nginx。
希望这个有用。

相关问题