nginx 重启失败,但重新加载成功

nginx 重启失败,但重新加载成功

我已将新的 SSL 证书添加到我的 nginx 服务器(我之前已多次这样做)。但是,当我重新启动 nginx 时,所有网站均无法正常运行。

当我运行 configtest 时,它显示:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果 nginx 正在运行并且我运行 nginx reload,则站点和新的 ssl 证书可以正常工作。

仅当 Nginx 重新启动时,我才会收到以下内容:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx: 

因此,启动 nginx 后什么也不会发生。也没有消息写入 nginx 错误日志。

如果我只是使用“开始”,通常它确实有效。

我该如何修复这个问题以及可能导致这个问题的原因是什么?

答案1

您如何运行重启?通过 init 脚本或使用服务,还是只是运行“nginx restart”

要调试 nginx,正确的方法是将其添加debug到 HTTP 下的 error_log 指令末尾。请参阅http://nginx.org/en/docs/debugging_log.html

但我确信重新启动时你的 PID 文件不会被清除。

首先终止 nginx,然后通过添加以下命令在前台模式下重新启动它master_process off或者daemon off到你的 nginx.conf 文件。

跑步:

nginx -c /etc/nginx/nginx.conf | tee ~/nginx.log

现在在另一个终端运行:

nginx -s restart 

我希望你得到很多错误。你也可以通过运行以下命令将自己附加到主 nginx 进程:strace -fqp <pid> 然后尝试看看它在做什么。(我猜这是一种万福玛利亚的方法,但是当你想确切地知道为什么东西不起作用时,为什么不获取所有的信息呢)。

答案2

最后我改变了 ssl 文件本身的编码,然后它就开始工作了。

注意:我使用 > 命令将 ssl 文件合并在一起,但无法正常工作。将各个密钥下载到我的计算机,手动将它们放在 1 个文件中,然后上传,它就开始工作了。

相关内容