Nginx 无法重新加载 - 如何追踪原因?

Huw*_*Huw 101 server debugging nginx wordpress

嗨,我的 Nginx 服务器在 Ubuntu 服务器 12.04 上运行良好有一段时间了。

我一直在逐渐关注各个方面,并尽可能优化我的 wordpress 页面上的加载时间。

在对我的主机文件进行了一些更改后,我决定:

sudo /etc/init.d/nginx reload
Run Code Online (Sandbox Code Playgroud)

我得到:

* Reloading nginx configuration nginx                           [fail]
Run Code Online (Sandbox Code Playgroud)

没有提供额外的信息或推理。如何重新启动我的服务器,以便它在重新加载时打印任何错误语句,以便我可以开始追踪错误。

对于奖金问题:

对于那些 Nginx 系统管理员来说,当您对主机进行了大量更改并固定在其他一些位上时,突然您的 nginx 服务器不会重新加载(顺便说一句,一切似乎仍在运行!)您如何开始隔离为什么或开始分解事物以进行调试!

小智 156

检查 syslog ( /var/log/syslog) 以获取有关配置文件问题的消息。

您可以从命令行运行:

nginx -c /etc/nginx/nginx.conf -t
Run Code Online (Sandbox Code Playgroud)

让 nginx 检查您的配置是否有错误。

  • 运行这个命令给了我`nginx:配置文件/etc/nginx/nginx.conf语法没问题nginx:配置文件/etc/nginx/nginx.conf测试成功`但我仍然无法启动nginx (4认同)
  • 啊!三个小时的搜索,结果我错过了一个;感谢您提供的所有帮助,事实证明这对于追踪它至关重要。顺便说一句,如果有人在关注 Ars Technica 网络服务的帖子后最终解决了这个问题。我想我现在已经用细齿梳子穿过它们了! (2认同)

Nan*_*mar 47

运行这个命令可以发现问题。

sudo nginx -t
Run Code Online (Sandbox Code Playgroud)


小智 7

您可能应该检查/var/log/nginx/error.log.

就我而言,我没有为 ipv6 添加端口。您也应该这样做(如果您在 80 以外的端口上运行 nginx):

listen [::]:8000 default_server ipv6only=on;
Run Code Online (Sandbox Code Playgroud)


Aar*_*ier 5

我运行这些命令来让 nginx 备份和工作:

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 
Run Code Online (Sandbox Code Playgroud)

nginx 现在可以工作了!!

  • 您不必移除和清除,只需清除即可。很难知道这是否会回答这个问题,因为清除将删除所有配置文件。 (2认同)