当前位置: 首页 > 面试题库 >

使用端口80(Ubuntu / Linode)运行Node.js的最佳实践

沈子实
2023-03-14
问题内容

我在上设置了我的第一台Node.js服务器,cloud Linux node而我对的细节还很陌生Linux admin。(顺便说一句,我不想​​同时使用Apache。)

一切都已正确安装,但是我发现除非使用,否则root login无法监听port 80node。但是出于安全原因,我宁愿不以超级用户身份运行它。

最佳做法是:

  1. 为节点设置良好的权限/用户,使其安全/沙盒化?
  2. 允许在这些限制内使用端口80。
  3. 启动节点并自动运行它。
  4. 处理发送到控制台的日志信息。
  5. 任何其他常规维护和安全问题。

我应该将端口80流量转发到其他监听端口吗?

谢谢


问题答案:

端口80

我在云实例上执行的操作是使用以下命令将端口80重定向到端口3000:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

然后,我在端口3000上启动Node.js。对端口80的请求将映射到端口3000。

您还应该编辑/etc/rc.local文件并添加减去的那一行sudo。这将在计算机启动时添加重定向。您不需要sudo/etc/rc.local因为其中的命令是root在系统引导时运行的。

日志

使用forever模块启动您的Node.js。如果崩溃,它将确保重新启动,并将控制台日志重定向到文件。

将您的Node.js启动脚本添加到您为端口重定向编辑的文件中/etc/rc.local。系统启动时,它将运行您的Node.js启动脚本。

Digital Ocean和其他VPS

这不仅适用于Linode,而且适用于Digital Ocean,AWS
EC2和其他VPS提供商。但是,基于RedHat的系统/etc/rc.local/ect/rc.d/local



 类似资料:
  • 问题内容: 我的目标是在端口80上运行Node.js。这是因为我发现node.js被某些网络阻止,这些网络不允许来自任何其他端口的流量。 看来最好的方法是通过Node.js代理Apache。我已经尝试使用node-http- proxy 来做到这一点,但是我没有任何运气。 我正在使用的代码在这里: 但是我一直收到端口80的错误“地址正在使用”。我一定做错了。 如何使用node-http-proxy

  • 问题内容: 我有一个普通的Node.js脚本,该脚本通过API从Wikipedia中提取数据并将其存储在SQLite数据库中。我正在使用此node- sqlite3 模块。 在某些情况下,我要提取多达60万篇文章中的数据,并在数据库中连续存储有关每篇文章的一些元数据。从API中以500为一组检索文章。 检索带有500条文章中的数据的JSON对象的请求将对象传递给此回调: 这些模块默认情况下并行运行

  • 问题内容: 我有一个通过端口5000运行的Flask服务器,很好。我可以在http://example.com:5000上访问它 但是是否可以在http://example.com上简单地访问它?我假设这意味着我必须将端口从5000更改为80。但是当我在Flask上尝试使用该端口时,运行该错误消息。 连续lsof -i :80收益 我需要先杀死这些进程吗?这样安全吗?还是有另一种方法可以让Flas

  • 9 Node.js 最佳实践 9.1 配置文件 一般代码的运行的环境起码应该包括本地开发环境和线上运行环境,那么问题来了,你开发环境用的配置信息可是跟线上环境不一样的。那么已经存储这个配置信息呢?在代码中写死肯定是最low的方式。更通用的方式是使用配置文件,可是你一旦将这个配置文件就面临一个问题,你这个配置文件一旦提交到了 git 之后,你的同事 pull 代码之后,就有可能就他本地配置文件覆盖掉

  • 问题内容: 我正在安装了Node.js的Amazon EC2上运行Debian的实例。如果我运行下面的代码: 我得到下面的输出,它告诉我还有另一个进程正在监听端口80: 现在,当我检查是否有一个进程在端口80上侦听某个进程(以root身份出现,以防任何东西被隐藏)时: 我得到以下输出,它告诉我在端口80上没有监听: 我应该注意,如果这有所作为,那么debian会将80端口作为入站规则打开。 我的问

  • 本文向大家介绍Mac中使用Nginx实现80端口转发8080端口,包括了Mac中使用Nginx实现80端口转发8080端口的使用技巧和注意事项,需要的朋友参考一下 由于项目本身的原因,开发必须使用80端口实现,而在Unix内核中非Root用户无法直接使用1024以下的端口,最初作者找到了pfctl的方式实现80端口转发到8080端口实现访问,经过亲测出现了最为严重的问题,按照当时的方法配置好之后发