首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用低权限运行Node.JS吗?

我可以用低权限运行Node.JS吗?
EN

Stack Overflow用户
提问于 2011-11-29 22:12:42
回答 1查看 5.7K关注 0票数 10

我想以低权限用户运行node,可以吗?我需要使用框架Express.js

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 14:04:03

是。有许多解决方案可以做到这一点,这取决于您的确切需求。

如果您想在端口80上运行node,可以使用nginx (目前还不支持WebSockets )或haproxy。但也许最快最脏的方法是使用iptables将端口80重定向到您选择的端口:

代码语言:javascript
复制
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8003
sudo iptables -t nat -L

当您满意时,保存配置并确保iptables在引导时打开

代码语言:javascript
复制
sudo service iptables save
sudo chkconfig iptables on

要自动以非根用户身份启动您的nodejs服务,并在失败时重新启动它,您可以通过如下脚本使用upstart

代码语言:javascript
复制
#!upstart
description "nodeapp"
author      "you"

start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
   export HOME="/home/user/"
   exec sudo -u user /usr/local/bin/node /home/user/app.js 2>&1 >> /home/user/app.log
end script

如果你安装了亚马逊EC2,或者你得到了一个显示为sudo: sorry, you must have a tty to run sudo的错误,那么你可以用下面的命令替换你的exec命令:

代码语言:javascript
复制
#!upstart
description "nodeapp"
author      "you"

start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
   export HOME="/home/user/"
   #amazon EC2 doesn’t allow sudo from script! so use su --session-command
   exec su --session-command="/usr/local/bin/node /home/user/app.js 2>&1 >> /home/user/app.log" user &
end script

而且,您没有问这个问题,但是为了让它永远运行,请查看monit!这是a useful guide to setting up node.js with upstart and monit

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8312171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档