在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/myusernamemyusername ALL=(ALL) NOPASSWD: /usr/sbin/service nginx start,/usr/sbin/service nginx stop,/usr/sbin/service nginx restart - 检查Nginx端口冲突,未发现异常
排查建议
验证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如果配置有语法错误,会直接输出具体问题。
查看Nginx详细日志:在重启步骤前后添加日志查看命令,获取具体失败原因:
sudo cat /var/log/nginx/error.log sudo systemctl status nginx.service -l日志会暴露诸如配置路径错误、权限不足、反向代理目标不可达等问题。
检查默认站点冲突:Ubuntu默认的Nginx站点可能和你的
kanban.live配置端口或规则冲突,尝试禁用默认站点:sudo unlink /etc/nginx/sites-enabled/default再重新执行配置检查和重启。
确认配置文件权限:确保Nginx能读取复制后的配置文件,设置正确权限:
sudo chmod 644 /etc/nginx/sites-available/kanban.live验证PM2服务状态:如果Nginx配置了反向代理到PM2服务,需要确认服务已正常启动并监听指定端口:
pm2 status netstat -tulpn | grep kanban-server
内容的提问来源于stack exchange,提问作者rickster
相关产品推荐
相关产品推荐

