【问题标题】:How to deploy frontend and node.js server on same VPS and domain?如何在同一个 VPS 和域上部署前端和 node.js 服务器?
【发布时间】:2018-05-06 20:46:15
【问题描述】:

我的任务是创建登录页面,该页面发送电子邮件,要求在提交表单时付款。 所以我有简单的静态前端(index.html、css/、js/、img/)和发送电子邮件的快速服务器(server.js); 在我的本地主机上,我在localhost:3000 上运行前端,在localhsot:3000 上运行 server.js。添加 CORS 标头后,一切正常,电子邮件已成功发送。

对于生产,我购买了一个带有 ubuntu 的 VPS 来部署所有这些。 我已经设置了 nginx,所以我的前端可以在 myDomainName.com 上使用。但是当我运行 server.js 时,它不会像在开发服务器上那样接收请求。同时,如果我通过 ssh 连接并输入 curl myDomainName.com:3000/,我会收到响应“Hi”;

// 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、相同的域、但在不同的端口上工作? 部署这类小项目的正确方法是什么?我应该选择其他乐器吗?

【问题讨论】:

  • 您确定您的防火墙允许端口 3000 上的外部连接吗?大多数标准配置不允许这样做
  • 就是这样!谢谢!:)

标签: javascript node.js nginx vps


【解决方案1】:

在大多数 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 连接

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 2020-11-28
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2020-09-14
    • 2021-04-24
    相关资源
    最近更新 更多