如何在一个Ubuntu VPS上用PM2来设置一个Nodejs生产环境?

如何在一个Ubuntu VPS上用PM2来设置一个Nodejs生产环境?

楼主把代码格式化的语法改一下吧, 不要用 <pre> code </pre>, 应该是 lang\n code \n

2 回复

当然可以!以下是关于如何在一个Ubuntu VPS上使用PM2来设置一个Node.js生产环境的详细步骤。我们将涵盖安装Node.js、安装PM2以及配置PM2以确保你的应用在生产环境中稳定运行。

1. 更新系统并安装必要的依赖

首先,确保你的Ubuntu VPS是最新的,并安装一些必要的依赖包:

sudo apt update && sudo apt upgrade -y
sudo apt install curl git build-essential libssl-dev -y

2. 安装Node.js

你可以通过NodeSource的二进制分发库来安装特定版本的Node.js。这里我们以Node.js 14.x为例:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

验证安装是否成功:

node -v
npm -v

3. 安装PM2

PM2是一个流行的Node.js进程管理器,可以帮助你更好地管理和监控Node.js应用。使用npm全局安装PM2:

sudo npm install pm2 -g

验证安装是否成功:

pm2 -v

4. 配置PM2

假设你已经有一个Node.js应用,比如app.js,你可以使用PM2来启动它:

pm2 start app.js

为了确保应用在服务器重启后仍然运行,你需要保存当前的PM2进程列表:

pm2 save

为了让PM2在系统启动时自动运行,需要设置开机启动:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u your_username --hp /home/your_username

将上述命令中的your_username替换为你的用户名。

5. 配置PM2生态系统文件

为了更方便地管理应用,建议创建一个PM2生态系统文件(ecosystem.config.js),这样可以更灵活地配置应用的各种参数:

module.exports = {
  apps: [{
    name: 'my-node-app',
    script: './app.js',
    instances: 'max', // 自动根据CPU核心数量选择实例数
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }]
};

使用此配置文件启动应用:

pm2 start ecosystem.config.js --env production

6. 监控和日志

PM2提供了一个Web界面来帮助你监控应用的状态。你可以安装PM2-Web插件:

pm2 install pm2-web

然后启动服务:

pm2-web

默认情况下,PM2-Web会在http://localhost:9000上运行,你可以通过浏览器访问这个地址来查看应用状态。

以上就是在Ubuntu VPS上使用PM2设置Node.js生产环境的基本步骤。希望这些信息对你有所帮助!


要在Ubuntu VPS上使用PM2设置一个Node.js生产环境,可以按照以下步骤进行:

  1. 安装Node.js 确保你的系统已经安装了Node.js。可以通过以下命令检查:

    node -v
    npm -v
    

    如果没有安装,可以使用以下命令安装Node.js:

    curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  2. 安装PM2 PM2是一个进程管理器,用于确保应用始终运行。可以通过npm全局安装PM2:

    sudo npm install pm2[@latest](/user/latest) -g
    
  3. 准备你的Node.js应用 将你的Node.js应用上传到VPS服务器上的某个目录中,例如/var/www/myapp

  4. 使用PM2启动应用 在应用目录中运行以下命令以启动应用:

    pm2 start app.js --name myapp
    

    这会将应用命名为myapp并使用app.js作为入口文件。

  5. 设置PM2开机自启动 使用PM2的内置功能来设置开机自启动:

    sudo pm2 startup
    sudo pm2 save
    
  6. 查看应用状态 可以使用以下命令查看应用的状态和日志:

    pm2 list
    pm2 logs
    
  7. 优化配置 可以通过编辑PM2的配置文件或使用命令行参数进一步优化应用配置。例如,可以使用集群模式来提高性能:

    pm2 start app.js --name myapp --max-memory-restart 1G
    
  8. 配置反向代理(可选) 为了通过Web服务器访问应用,可以配置Nginx或Apache作为反向代理。这里以Nginx为例:

    sudo apt-get install nginx
    sudo nano /etc/nginx/sites-available/default
    

    在配置文件中添加类似以下的内容:

    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    

    然后重启Nginx:

    sudo systemctl restart nginx
    

以上步骤将帮助你在Ubuntu VPS上使用PM2设置一个Node.js生产环境。

回到顶部