新手提问:如何在centos6上部署Nodejs服务?

新手提问:如何在centos6上部署Nodejs服务?

nodejs已经安装,也根据《nodejs入门指南》一书创建并成功运行了一简单的上传图片的小例子,但是启动服务依然是在命令行,我想配置一下让他自己跑进程,网上很多使用nginx+nodejs方式配置,目的是nginx稳定而且处理静态文件的速度快,但是我想做个简单的数据处理的小web,不需要处理静态文件,所以想让nodejs单独即可,google良久未能找到良好的解决方案,望大虾们不吝赐教。

6 回复

当然可以!以下是如何在 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服务,并让它在后台独立运行,可以遵循以下步骤:

  1. 确保Node.js已正确安装: 首先,验证Node.js是否已经正确安装:

    node -v
    npm -v
    
  2. 将Node.js应用设置为系统服务: 使用foreverpm2来确保你的Node.js应用在后台持续运行。这里以forever为例进行说明。

    • 安装forever

      npm install -g forever
      
    • 将你的Node.js应用作为服务运行(假设你的应用入口文件是app.js):

      forever start app.js
      

    若要停止该服务:

    forever stop app.js
    

    若要查看服务状态:

    forever list
    
  3. 创建一个简单的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}/`);
    });
    
  4. 让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文件中的配置项。

回到顶部