You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DigitalOcean Droplet部署时执行sudo systemctl restart nginx报错求助

Github Actions部署pre-prod分支时Nginx重启失败

工作流配置(workflow.yml)

name: Deploy to Production
on:
  push:
    branches: [pre-prod]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: uses node.js with version ${{ secrets.NODE_VERSION }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ secrets.NODE_VERSION }}

      - name: Set environment variables
        run: |
          export DB_PROD_USERNAME=${{secrets.DB_PROD_USERNAME}}
          export DB_PROD_PASSWORD=${{secrets.DB_PROD_PASSWORD}}

      - name: Checkout code
        uses: actions/checkout@v2

      - name: Install dependencies and build frontend + backend app
        run: |
          npm install
          CI=false npm run build:client
          CI=false npm run build:server

      - name: Start server with PM2
        run: |
          sudo apt-get update
          npm install -g pm2
          pm2 start npm --name kanban-server -- run start --workspace=kanban-server

      - name: Configure Nginx
        run: |
          sudo apt-get install nginx
          sudo cp kanban.live.conf /etc/nginx/sites-available/kanban.live
          sudo ln -s /etc/nginx/sites-available/kanban.live /etc/nginx/sites-enabled/

      - name: Restart Nginx
        run: |
          sudo systemctl restart nginx

      - name: Clean up
        run: |
          cd ../..
          rm -rf kanban-board

错误信息

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
Error: Process completed with exit code 1.

已尝试的解决方法

  • 配置sudo免密执行Nginx相关命令:
    sudo visudo -f /etc/sudoers.d/myusername
    
    在文件中添加:
    myusername ALL=(ALL) NOPASSWD: /usr/sbin/service nginx start,/usr/sbin/service nginx stop,/usr/sbin/service nginx restart
    
  • 检查Nginx端口冲突,未发现异常

排查建议

  1. 验证Nginx配置语法:在重启前添加配置检查命令,这是Nginx启动失败最常见的排查点。修改Configure Nginx步骤:

    sudo apt-get install nginx
    sudo cp kanban.live.conf /etc/nginx/sites-available/kanban.live
    sudo ln -s /etc/nginx/sites-available/kanban.live /etc/nginx/sites-enabled/
    sudo nginx -t
    

    如果配置有语法错误,会直接输出具体问题。

  2. 查看Nginx详细日志:在重启步骤前后添加日志查看命令,获取具体失败原因:

    sudo cat /var/log/nginx/error.log
    sudo systemctl status nginx.service -l
    

    日志会暴露诸如配置路径错误、权限不足、反向代理目标不可达等问题。

  3. 检查默认站点冲突:Ubuntu默认的Nginx站点可能和你的kanban.live配置端口或规则冲突,尝试禁用默认站点:

    sudo unlink /etc/nginx/sites-enabled/default
    

    再重新执行配置检查和重启。

  4. 确认配置文件权限:确保Nginx能读取复制后的配置文件,设置正确权限:

    sudo chmod 644 /etc/nginx/sites-available/kanban.live
    
  5. 验证PM2服务状态:如果Nginx配置了反向代理到PM2服务,需要确认服务已正常启动并监听指定端口:

    pm2 status
    netstat -tulpn | grep kanban-server
    

内容的提问来源于stack exchange,提问作者rickster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:42:17