我的任务是创建登录页面,该页面发送电子邮件,其中包含提交表单付款的必要条件。
所以我有简单的静态前端(index.html,css /,js /,img /)和express发送电子邮件的服务器(server.js);
在我的localhost上,我在localhost:3000
和localhsot: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,相同的域上工作,但在不同的端口上? 部署这类小项目的正确方法是什么?我应该选择其他乐器吗?
答案 0 :(得分:0)
在大多数UNIX系统中,防火墙配置为仅允许来自端口80
和443
上的其他客户端的流量用于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上的连接