nginx不记录服务器日志 怎么回事?
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试试。看有日志吗?