如何在相同的VPS和域上部署前端和node.js服务器?

时间:2018-05-06 20:46:15

标签: javascript node.js nginx cors vps

我的任务是创建登录页面,该页面发送电子邮件,其中包含提交表单付款的必要条件。 所以我有简单的静态前端(index.html,css /,js /,img /)和express发送电子邮件的服务器(server.js); 在我的localhost上,我在localhost:3000localhsot:3000上的server.js上运行前端。添加CORS标题后,一切正常,电子邮件已成功发送。

对于制作我已经用ubuntu购买了VPS来部署所有这些。 我已经设置了nginx,所以我的前端可以在myDomainName.com上找到。但是当我运行server.js时,它并没有像在dev服务器上那样接收请求。同时,如果我通过ssh连接并输入curl myDomainName.com:3000/,我会收到回复'嗨';

// server.js
// some code...
app.get('/' function (req, res) { res.status(200).end('Hi'); }
app.listen(3000, function () { console.log('Server listening on port 3000!'); })


// frontendFormHandler.js
// some code...
$.get('myDomainName.com:3000/', function(data){ console.log(data) })

我应该如何设置所有这些以使其在相同的VPS,相同的域上工作,但在不同的端口上? 部署这类小项目的正确方法是什么?我应该选择其他乐器吗?

1 个答案:

答案 0 :(得分:0)

在大多数UNIX系统中,防火墙配置为仅允许来自端口80443上的其他客户端的流量用于HTTP和HTTPS,出于安全原因,所有其他端口都被阻止。

允许端口(使用ufw)使用

$ (sudo) ufw allow 3000/tcp
$ (sudo) ufw allow 3000/udp

或者,对于IPTables:

$ (sudo) iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
$ (sudo) iptables -I INPUT -p udp --dport 3000 -j ACCEPT

允许TCP或UDP上的连接