返回

egg一键部署到服务器

前端

在宝塔面板中使用 PM2 部署 Egg.js 应用程序

安装 PM2

PM2 是一款轻量级的进程管理器,可以帮助我们管理 Egg.js 应用程序。在宝塔面板中安装 PM2 非常方便,只需执行以下命令即可:

yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/epel/7/$basearch/
yum makecache
yum -y install epel-release
yum -y install python-pip
pip install supervisor
yum -y install pm2

配置 PM2

安装 PM2 后,我们需要创建一个配置文件来配置 Egg.js 应用程序。编辑配置文件 /etc/pm2/conf.d/egg_deploy.conf 并添加以下内容:

[apps]
  name      = egg_deploy
  script    = /egg-example/app.js
  exec_mode = cluster
  instances = 1
  args      = --env=prod

启动 PM2

配置好配置文件后,我们可以使用以下命令启动 PM2:

pm2 start egg_deploy.conf

查看 PM2

要查看 PM2 的状态,可以使用以下命令:

pm2 list

日志查看

要查看应用程序的日志,可以使用以下命令:

pm2 logs egg_deploy

重启 PM2

如果需要重启应用程序,可以使用以下命令:

pm2 restart egg_deploy

停止 PM2

要停止应用程序,可以使用以下命令:

pm2 stop egg_deploy

删除 PM2

如果不再需要 PM2,可以使用以下命令删除:

pm2 delete egg_deploy

配置 Nginx

为了让应用程序可以通过 Nginx 访问,我们需要配置 Nginx。编辑配置文件 /etc/nginx/conf.d/egg_deploy.conf 并添加以下内容:

server {
  listen       80;
  server_name  localhost;

  location / {
    proxy_pass http://127.0.0.1:7001;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;
  }
}

重启 Nginx

配置好 Nginx 后,需要重启 Nginx 才能生效:

nginx -t
nginx -s reload

访问项目

现在就可以通过访问 http://your_server_ip/ 来访问 Egg.js 应用程序了。

常见问题解答

  • 为什么需要使用 PM2 来部署 Egg.js?
    Egg.js 内置了 egg-cluster 模块,但 PM2 可以提供额外的功能,如进程监视、重启和日志管理。

  • 如何修改应用程序的启动参数?
    修改配置文件 /etc/pm2/conf.d/egg_deploy.conf 中的 args 选项即可。

  • 如何增加或减少应用程序的实例数?
    修改配置文件 /etc/pm2/conf.d/egg_deploy.conf 中的 instances 选项即可。

  • 如何将应用程序切换到生产环境?
    使用 pm2 start egg_deploy.conf --env=prod 命令启动 PM2。

  • 如何将应用程序从 PM2 中删除?
    使用 pm2 delete egg_deploy 命令即可。