新手提问:如何在centos6上部署Nodejs服务?
新手提问:如何在centos6上部署Nodejs服务?
nodejs已经安装,也根据《nodejs入门指南》一书创建并成功运行了一简单的上传图片的小例子,但是启动服务依然是在命令行,我想配置一下让他自己跑进程,网上很多使用nginx+nodejs方式配置,目的是nginx稳定而且处理静态文件的速度快,但是我想做个简单的数据处理的小web,不需要处理静态文件,所以想让nodejs单独即可,google良久未能找到良好的解决方案,望大虾们不吝赐教。
当然可以!以下是如何在 CentOS 6 上部署一个 Node.js 服务的详细步骤。我们将使用 forever
来确保你的 Node.js 应用程序在后台持续运行。
步骤 1: 安装 Node.js 和 npm
假设你已经安装了 Node.js 和 npm(Node Package Manager),如果没有安装,可以通过以下命令进行安装:
# 首先更新系统包
sudo yum update -y
# 添加 Node.js 的官方仓库
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# 安装 Node.js 和 npm
sudo yum install nodejs npm -y
步骤 2: 创建一个简单的 Node.js 应用
假设你已经有一个简单的 Node.js 应用,如果没有,你可以创建一个简单的 HTTP 服务器:
// app.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3000/');
将上述代码保存为 app.js
文件。
步骤 3: 使用 forever
管理 Node.js 进程
forever
是一个非常有用的工具,用于确保你的 Node.js 应用在后台持续运行,并且在应用程序崩溃时自动重启。
首先,安装 forever
:
sudo npm install forever -g
然后,使用 forever
启动你的应用:
forever start app.js
如果你想查看应用的状态或停止应用,可以使用以下命令:
# 查看所有正在运行的应用
forever list
# 停止应用
forever stop app.js
步骤 4: 设置开机自启
为了让应用在服务器重启后自动启动,可以使用 forever-service
工具来创建一个系统服务。
首先,安装 forever-service
:
npm install -g forever-service
然后,创建并启用服务:
forever-service install myapp --script app.js
这将在系统启动时自动启动你的 Node.js 应用。
总结
通过以上步骤,你可以在 CentOS 6 上部署一个简单的 Node.js 服务,并确保它在后台持续运行。如果你需要更复杂的配置或部署方案,可以考虑使用 Docker 或其他容器化技术。希望这些信息对你有帮助!
啥叫自己跑进程?可以看看我发的那个帖子,把node app设置成一个service。。
我也用的forever解决的,正好需要个开机启动资料,多谢提供!
supervisor
也可以用用看
start-stop-daemon 也可以用用看
要在CentOS 6上部署一个Node.js服务,并让它在后台独立运行,可以遵循以下步骤:
-
确保Node.js已正确安装: 首先,验证Node.js是否已经正确安装:
node -v npm -v
-
将Node.js应用设置为系统服务: 使用
forever
或pm2
来确保你的Node.js应用在后台持续运行。这里以forever
为例进行说明。-
安装
forever
:npm install -g forever
-
将你的Node.js应用作为服务运行(假设你的应用入口文件是
app.js
):forever start app.js
若要停止该服务:
forever stop app.js
若要查看服务状态:
forever list
-
-
创建一个简单的Node.js Web应用: 创建一个简单的HTTP服务器,例如
app.js
:const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
-
让Node.js服务开机自启: 如果希望服务在系统重启后自动启动,可以创建一个systemd服务单元文件。
-
创建一个新的service文件:
sudo vi /etc/systemd/system/myapp.service
-
添加以下内容到文件中:
[Unit] Description=My Node.js App After=network.target [Service] ExecStart=/usr/local/bin/node /path/to/your/app.js Restart=always User=nobody Environment=PATH=/usr/local/bin:/usr/bin:/bin WorkingDirectory=/path/to/your/app/directory [Install] WantedBy=multi-user.target
-
启用并启动服务:
sudo systemctl enable myapp sudo systemctl start myapp
-
通过以上步骤,你可以将Node.js应用部署到CentOS 6上,并确保它在后台持续运行。如果你需要更复杂的配置,例如日志管理或环境变量设置,可以进一步调整myapp.service
文件中的配置项。