nginx不记录服务器日志 怎么回事?

发布网友 发布时间:2022-04-25 16:26

我来回答

2个回答

热心网友 时间:2022-05-01 00:32

请强制重启nginx服务,service nginx stop && service nginx start
然后一般有这个错误:
"/var/lib/nginx/tmp/client_body/0000000002" failed (13: Permission denied)
chmod -R 777 /var/lib/nginx
OK

热心网友 时间:2022-05-01 01:50

nginx的access日志的配置是通过如下的指令:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;

该指令可以出现在http,server域中。


错误日志是通过如下指令配置的:

error_log  logs/error.log  info;


        默认error_log会放在main域中,如果想让不同server域使用各自的error配置,则需要在server中重配error_log指令。在重新定义错误日志时,如果没有指定相应的日志级别,那么调试日志将会被屏蔽。

        如下面的例子里,在server层中重新定义的日志就屏蔽了这个虚拟主机的调试日志:

error_log  /path/to/log  debug;

http {
    server {
        error_log  /path/to/log;
        #...
        #...
}

        为了避免这个问题,可以注释这行重新定义日志的配置,或者也给日志指定debug级别,如下所示:

error_log  /path/to/log  debug;

http {
    server {
        error_log  /path/to/log debug;
        #...
        #...
}


        如果nginx进程没有权限将日志信息写入指定的log地址,那么nginx会在启动是报错,如下所示:

        

[alert]: could not open error log file: open() "/path/log/nginx/error.log" failed (13: Permission denied)

        具体的没有打日志的原因还需要根据配置文件具体分析。由于不知道你的配置时什么样子的,因此也无法给出确切解答,但是依据上述分析,应该也可以查处原因。如还有其它疑问,可以继续追问。

追问日志的部分是这两行
error_log /home/hosts_log/23_error.log notice;
access_log /home/hosts_log/23_access.log lu_access_log_2 buffer=32k;

/home/hosts_log/这个文件夹里面,文件的大小都是0

追答

access_log中的lu_access_log_2是log_fromat, 你有用log_format 指令指定lu_access_log_2日志的格式吗?如果没有制定时不行的。

首先确认有lu_access_log_2日志格式,然后

建议修改日志如下:

error_log /home/hosts_log/23_error.log debug;
access_log /home/hosts_log/23_access.log lu_access_log_2;

然后修改/home/hosts_log目录的权限为777,然后重启下nginx试试。看有日志吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com