EduOpenAI Core 文档/PM2 与 Nginx

PM2 与 Nginx

进程守护与反向代理

PM2 进程管理

启动(fork 模式必须 -x)
pm2 start /www/wwwroot/maic.eduopenai.com/.next/standalone/server.js \
  --name eduopenai \
  --cwd /www/wwwroot/maic.eduopenai.com/.next/standalone \
  -x -i 1 --update-env

pm2 list                         # 状态
pm2 logs eduopenai --lines 50 --nostream   # 日志(不阻塞)
pm2 restart eduopenai            # 重启(改 .env 后)
pm2 save                         # 保存进程列表
注意
--cwd 必须用绝对路径(相对路径会被二次拼接);standalone 不支持 cluster 模式(必须 -x fork);不要用 nohup 裸跑(宕机后无守护)。

Nginx 反向代理

关键配置
server {
    listen 80;
    server_name maic.eduopenai.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # LLM 长生成防 504
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }
}

iframe 嵌入(CSP)

ALLOWED_FRAME_ANCESTORS=https://learn.eduopenai.com 在 next.config.ts 构建时读取,生成 CSP frame-ancestors。修改后需重新 build。