Nginx 启动失败,没有错误

Nginx 启动失败,没有错误

我无法在 Debian 上启动我的 nginx (1.6.2),service nginx start.没有错误,只有FAIL消息。

我使用检查了我的配置nginx -c /etc/nginx/nginx.conf -t并且成功了。

我已经从源代码构建了 nginx,并且安装了 pagespeed 模块。

看来我在这里遇到了同样的错误:https://stackoverflow.com/questions/24961066/cant-start-nginx-no-errors-anywhere 但检查后发现,两个文件都在寻找/run/nginx.pid.这个文件似乎是空的,这有问题吗?

ls -al /run/*.pid给我吗 :

-rw-r--r-- 1 root root 0 nov.  26 09:32 /run/nginx.pid

当我使用时ps -A,我有 2 个 nginx,它们有 2 个不同的 pid。这是问题吗?

还有一件奇怪的事情,当我在 Web 浏览器中访问我的 IP 时,我会看到“欢迎使用 Ningx”消息。但是,service nginx status返回失败。

答案1

拥有多个 nginx 进程可能是正常的……也可能不是。如果您只有 2 个进程,那么您可能有一个主进程和一个工作进程,这就是 nginx 的工作方式。拥有多个主进程,除非这是您想要的,否则可能预示着麻烦。

如果您的 PID 文件为空,那肯定是个问题:管理服务会使用它来识别要检查哪个进程并向其发送信号。空的 PID 文件 = 服务将尝试向空文件发送信号...

  1. 使用ps -ef|grep -E "(PID|nginx)"|grep -v grep,尝试识别主进程(即 PPID 为 1 且在描述中称自己为“master”的进程)。然后向其发送 TERM、KILL 或 QUIT 信号。

  2. 手动删除 PID 文件

  3. 检查你的服务文件(如果你使用 init,很可能是/etc/init.d/nginx)中的 PID 文件名,并将其与你提供的位置进行比较

  4. 确保没有 PID 文件,没有 nginx 进程再运行,并正常使用您的服务再次启动/停止/重新加载/检查状态。

那就可以了。

现在,空的 PID 文件从何而来是一个有趣的问题,你可以问自己...你玩过它吗? nginx 的多个实例不适用于它,你应该在那里找到一些东西!

相关内容