Egg.js怎么部署到服务器上?

Egg.js 应用部署到服务器可以分为以下几个步骤:

1. 环境准备

服务器环境要求

- Node.js(建议 14.x 或更高版本)

- npm 或 yarn

- 生产环境需要 pm2 进程管理

安装 Node.js

使用 nvm 安装 Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 16  # 安装 Node.js 16 LTS
nvm use 16

2. 代码部署

方式一:Git 部署(推荐)

在服务器上克隆代码
git clone your-repo.git
cd your-egg-app
安装依赖
npm install --production

方式二:手动上传

将本地打包的代码上传到服务器,然后安装依赖。

3. 生产环境配置

创建生产环境配置文件

// config/config.prod.js
module.exports = {
  // 生产环境配置
  keys: 'your-production-secret-key',
  
  // 安全配置
  security: {
    csrf: {
      enable: false, // 根据需求调整
    },
  },
};

环境变量配置

设置环境变量
export EGG_SERVER_ENV=production

4. 使用 PM2 部署(推荐)

安装 PM2

npm install pm2 -g

创建 PM2 配置文件

// ecosystem.config.js
module.exports = {
  apps: [{
    name: 'egg-app',
    script: 'node',
    args: 'dispatch.js',
    instances: 'max', // 根据 CPU 核心数设置
    exec_mode: 'cluster', // 集群模式
    env: {
      EGG_SERVER_ENV: 'production',
      NODE_ENV: 'production',
    },
    error_file: './logs/err.log',
    out_file: './logs/out.log',
    log_file: './logs/combined.log',
    time: true,
  }],
};

启动应用

使用 PM2 启动
pm2 start ecosystem.config.js
或者直接启动
npm start

5. Nginx 反向代理配置

/etc/nginx/conf.d/egg-app.conf
server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://127.0.0.1:7001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # 静态资源
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control public;
        add_header Pragma public;
        add_header Vary Accept-Encoding;
    }
}

重启 Nginx:

sudo nginx -t
sudo systemctl reload nginx

6. 使用 Docker 部署(可选)

创建 Dockerfile

FROM node:16-alpine
WORKDIR /app
复制 package.json
COPY package*.json ./
安装依赖
RUN npm install --production
复制源码
COPY . .
暴露端口
EXPOSE 7001
启动应用
CMD npm start

构建和运行

构建镜像
docker build -t egg-app .
运行容器
docker run -d -p 7001:7001 --name egg-app egg-app

7. 部署脚本示例

简单的部署脚本

#!/bin/bash
deploy.sh
echo "开始部署 Egg.js 应用..."
拉取最新代码
git pull origin main
安装依赖
npm install --production
构建(如果有)
npm run build
重启应用
pm2 restart egg-app
echo "部署完成!"

8. 重要注意事项

日志管理

查看日志
pm2 logs egg-app
或者查看 Egg.js 日志
tail -f logs/egg-app/common-error.log

进程管理

PM2 常用命令
pm2 status          # 查看状态
pm2 restart egg-app # 重启应用
pm2 stop egg-app    # 停止应用
pm2 delete egg-app  # 删除应用

性能优化

// config/config.prod.js
module.exports = {
  // 启用集群
  cluster: {
    listen: {
      port: 7001,
      hostname: '0.0.0.0',
    },
  },
  
  // 静态资源配置
  static: {
    prefix: '/public/',
    dir: path.join(appInfo.baseDir, 'app/public'),
    dynamic: true,
    preload: false,
    maxAge: 31536000,
  },
};

9. SSL 配置(可选)

使用 Let's Encrypt 配置 HTTPS:

安装 certbot
sudo apt install certbot python3-certbot-nginx
获取证书
sudo certbot --nginx -d your-domain.com

按照以上步骤,你就可以成功将 Egg.js 应用部署到服务器上了,记得根据实际需求调整配置。

文章摘自:https://idc.huochengrm.cn/fwq/20640.html

评论

精彩评论
  • 2025-11-16 14:08:43

    将 Egg.js 应用部署到服务器,需准备 Node.js 环境,通过 Git 或手动上传代码,配置生产环境,使用 PM2 或 Nginx 部署,可选 Docker 化部署,并注意日志管理和性能优化。

  • 2025-12-14 22:31:23

    将 Egg.js 应用部署到服务器,需准备服务器环境、部署代码、配置生产环境、使用 PM2 或 Nginx 部署,可选 Docker 部署,并注意日志管理和性能优化。

  • 2026-01-04 12:01:58

    将 Egg.js 应用部署到服务器,需准备 Node.js 环境,使用 Git 或手动上传代码,配置生产环境,使用 PM2 或 Nginx 部署,可选 Docker 部署,并注意日志管理和性能优化。

  • 2026-03-16 00:21:46

    Egg.js部署到服务器上,首先配置好服务器环境,然后通过npm run build生成静态文件,最后上传到服务器并配置相应的服务器软件如Nginx或Apache。