如何使用nginx从节点应用程序的URL中删除端口

时间:2018-02-02 13:03:06

标签: node.js reactjs express nginx devops

  

我的反应和角度应用程序(UI有两个部分)正在运行   在端口3000上的node / express应用程序。在server.js(node-express入口点)我动态地   处理在浏览器上使用哪个UI进行渲染(反应或角度)   表达静态功能。

     

早些时候我的应用程序正在运行 - https://mywebsite.com:3000/ 但是   根据要求,我们应将其更改为 - https://mywebsite.com   使用" nginx代理"处理与DevOps人但现在遇到了   实际上现在的另一个问题是使用两个url都可以访问UI    https://mywebsite.com:3000/ https://mywebsite.com我希望它应该是   仅使用 https://mywebsite.com/ 即可访问。

我可以从三个地方访问我的服务器API( https://mywebsite.com:3000/api/v1 ): -

1) ios app 
2) admin app (running differently)
3) and UI(Reactjs+angularjs)  (https://mywebsite.com)

注意 - 无论如何通过部署过程或节点/快速服务器级别的设置来处理这个问题。我们发现一个解决方案是为UI部分创建单独的节点服务器但是根据成本削减,我们忽略了创建另一个的方法用于UI的服务器。

3 个答案:

答案 0 :(得分:1)

假设我的域名是https://api.aegisapi.com:3000,首先,您可以检查入站意味着是否存在https(如果不存在),然后为443添加HTTPS,

然后您可以https://api.aegisapi.com运行其工作

答案 1 :(得分:0)

当您像这样运行节点服务器时 它监听所有接口,即可从外部访问的0.0.0.0。

你应该听 来自

app.listen(3000)

app.listen(3000, '127.0.0.1');

此外,您还应该使用IPTables阻止此端口。

答案 2 :(得分:0)

如果使用AWS EC2实例,则打开入站端口3000并打开面向公共端口的端口,例如80或443来获取用户的请求,然后当您使用nginx作为反向代理时使用它来将请求转发到端口3000.