nginx:access.log和error.log文件为空

nginx:access.log和error.log文件为空,nginx,Nginx,我刚刚使用命令在Ubuntu 14.04上安装了nginx sudo apt-get install nginx 现在,当我打开浏览器并输入地址localhost时,正确显示了“欢迎使用nginx”页面。此外,我还检查了位于/etc/nginx/nginx.conf中的配置文件,发现了以下日志设置: access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; 但是,当我检查这两个文件时,它们都是空的。我已

我刚刚使用命令在Ubuntu 14.04上安装了nginx

sudo apt-get install nginx
现在,当我打开浏览器并输入地址
localhost
时,正确显示了“欢迎使用nginx”页面。此外,我还检查了位于
/etc/nginx/nginx.conf
中的配置文件,发现了以下日志设置:

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

但是,当我检查这两个文件时,它们都是空的。我已经多次打开了
localhost
页面,但日志文件仍然是空的。我的设置可能有什么问题?

在将nginx重新安装到较新版本后,我遇到了同样的问题。似乎日志文件的所有权发生了变化,新的nginx无法在那里保存任何内容

删除日志文件和重新加载nginx对我来说很有效:

$ sudo rm -f /var/log/nginx/*
$ sudo nginx -s reload

默认情况下,它们被设置为转到stdout和stderr

lrwxrwxrwx  1 root root   11 Apr 27  2016 access.log -> /dev/stdout
lrwxrwxrwx  1 root root   11 Apr 27  2016 error.log -> /dev/stderr
因此,您可以删除符号链接,这样就可以了

rm -f /var/log/nginx/*

对于所有像我一样来这里想知道为什么日志文件是空的,并且没有意识到您实际上可能在docker容器中的人,就像另一个答案中的一条评论所建议的那样,只需打开一个新的shell并用


docker日志{您的容器id在这里}-f

您有没有发现这一点?在这里有一个类似的问题…它后来在我没有改变任何东西的情况下工作。有相同的问题不知道会发生什么我也有这个问题。Nginx已正确启动,但在输入服务器IP地址时,我看不到任何页面。而且我在access和error log中也没有看到任何日志。为我工作。干杯为我工作。谢谢但是,现在日志没有写入docker容器日志。i、 e.docker logs-f一定有人将其设置为docker图像我使用的是官方的nginx docker图像,这就是我的问题所在。这在docker里面是很有意义的,但这是一个有趣的发现lol@Freedom_Ben我注意到官方的nginx docker图像也是如此。你能帮我理解为什么在docker里面这么做是有意义的吗?它是否会以某种方式路由到主机?如果是,我如何利用它?谢谢@Hans这在docker中是有意义的,因为stdout/stderr是“正确”的日志记录方式。在docker world中,文件是个坏主意,因为它们是短暂的。你要遵循12要素应用程序原则