如何在专用服务器上运行节点 js?
Posted
技术标签:
【中文标题】如何在专用服务器上运行节点 js?【英文标题】:how to run node js on dedicated server? 【发布时间】:2017-05-09 19:42:08 【问题描述】:我正在做一个聊天应用程序并将其集成到一个网站上。当我在本地服务器上执行命令“node index.js”时,一切正常。但是当我尝试在专用服务器上安装节点 js 并尝试通过 ssh 执行命令“nohup node index.js &”时,它会给出以下消息。
nohup:忽略输入并将输出附加到 `nohup.out'
我已经按照本站提到的方法在服务器https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts上安装node js
有人可以帮帮我吗?
【问题讨论】:
尝试在生产环境中使用pm2
经理运行node
应用程序。
你能详细解释一下吗@Mukesh Sharma
这可以帮助你。 ***.com/documentation/node.js/2975/…
显然这是正常行为:***.com/questions/24646320/…
我试过了,终端上不会显示任何消息,我的聊天应用程序也不会工作@Radioreve
【参考方案1】:
您首先需要以正确的方式安装 Node。我写了一篇关于它的教程:How to get Node 6.7.0 on Linux(当然你可以使用更新的版本,只需在命令中更改版本即可)。
基本上是这样的 - 将版本更改为您喜欢的版本:
# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node
我建议从源代码构建 Node 并始终运行 make test
,但您也可以安装更快的二进制包 - 如果这样做,请确保您了解路径和 hashbang 行的问题 - 更多信息和更多my tutorial 中描述了安装选项。
那么你需要确保每次服务器重启时你的应用程序都启动了。如果可以,我建议使用 Upstart。
使用 Upstart,在 /etc/init/YOURAPP.conf
中保存这样的内容:
# When to start the service
start on runlevel [2345]
# When to stop the service
stop on runlevel [06]
# If the process quits unexpectadly trigger a respawn
respawn
# Start the process
exec start-stop-daemon --start --chuid node --make-pidfile --pidfile /www/YOURAPP/run/node-upstart.pid --exec /opt/node/bin/node -- /www/YOURAPP/app/app.js >> /www/YOURAPP/log/node-upstart.log 2>&1
只是改变:
YOURAPP
你自己的应用的名字
/opt/node/bin/node
通往node
的路径
/www/YOURAPP/app/app.js
指向您的 Node 应用程序路径
/www/YOURAPP/run
到你想要你的 PID 文件的地方
/www/YOURAPP/log
到你想要你的日志的地方
--chuid node
到 --chuid OTHERUSER
如果您希望它以不同于 node
的用户身份运行
(确保添加名称来自上述--chuid
的用户)
使用您的/etc/init/YOURAPP.conf
,您可以安全地重新启动服务器并让您的应用程序仍在运行,您可以运行:
start YOURAPP
restart YOURAPP
stop YOURAPP
启动、重新启动和停止您的应用 - 这也会在系统启动或关闭期间自动发生。
有关更多信息,请参阅以下答案:
Installing Node Running Node on servers您也可以使用 systemd,但 there are some differences 因为系统是 much more complicated 并且通常会导致 some problems。
【讨论】:
以上是关于如何在专用服务器上运行节点 js?的主要内容,如果未能解决你的问题,请参考以下文章
尝试在专用服务器上实现 Node.js 和 Socket.io
如何在 Azure 应用服务上运行使用 ts-node 开发的节点应用程序