删除 NGINX 日志后如何重新启动日志记录?

删除 NGINX 日志后如何重新启动日志记录?

我删除了我的 NGINX 日志,因为它太大了,以为 NGINX 会自动创建一个新的日志来代替它。但事实并非如此,现在我没有日志。该文件之前位于/opt/nginx/logs/error.log。我尝试在相同位置创建一个具有相同权限的新文件,但似乎没有帮助。我在 ubuntu 12.10 服务器上运行 nginx/1.4.7。

我该如何恢复我的日志记录?

我试过了sudo service nginx restart,它说nginx: unrecognized service。我想这可能是因为我使用 NGINX 和 Phusion Passenger 来为 rails 应用程序提供服务,而 Passenger 做了一些更改。例如,NGINX 位于/opt/nginx而不是init.d

答案1

这个问题在 stackoverflow 上正确回答经过《Passenger》的作者之一。以下是他的回答的副本。


重新启动 Nginx实际上让日志文件回来了。只是你没有使用正确的方法重新启动 Nginx,因为你的 Nginx 安装是从源代码安装的。

默认的 Nginx 源代码不提供初始化脚本,例如/etc/init.d/nginxservice nginx restart。初始化脚本实际上是操作系统的 Nginx 包提供的扩展。如果您从源代码安装 Nginx,那么您将无法再使用初始化脚本来控制 Nginx。相反,您将使用更通用的操作系统原语来控制 Nginx,例如 PID 文件和信号。欲了解更多信息,请参阅 Passenger 文档

重启 Nginx 是通过向它发送信号并通过 Nginx 命令重新启动它来完成的。例如:

sudo kill $(cat /opt/nginx/logs/nginx.pid)
sudo /opt/nginx/sbin/nginx

要了解有关重新启动从源代码安装的 Nginx 的更多信息,请阅读这部分乘客文件

相关内容