这里的NGINX初学者。
我的日志目前如下:
92.21.236.47 - - [08 / Jan / 2017:00:48:10 +0000]“GET / HTTP / 1.1”200 148“ - ”“Mozilla / 5.0(Windows NT 10.0; WOW64; rv:50.0) Gecko / 20100101 Firefox / 50.0“
当我在默认的/etc/nginx/nginx.conf
中添加以下行时log_format main '$remote_addr - $remote_user xxx[$time_local]xxx '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
(access_log和error_log行已存在于默认配置中,我将这些仅用于上下文)。
然后我用:
重启NGINXsystemctl restart nginx
我现在希望我的日志能够更改,特别是显示使用的xxx文字值.. xxx [$ time_local] xxx ..但我的更改没有任何区别。
如果我将 log_format main 更改为 log_format合并,则服务器将不会重新启动。
答案 0 :(得分:12)
改变..
access_log /var/log/nginx/access.log;
到..
access_log /var/log/nginx/access.log main;
修好了。
其中 main 是在..
中定义的log_format的名称log_format main '$remote_addr - $remote_user xxx[$time_local]xxx '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
答案 1 :(得分:2)
现在回复很晚,但对那些仍然陷入困境的人可能有用。
将log_format
指令写在server {}
之外
整个代码就是这样
log_format main '$remote_addr - $remote_user xxx[$time_local]xxx '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
server {
listen 80;
access_log /var/log/nginx/<your_domain>_access.log main;
}
这里main表示在编写日志时nginx应该包括哪些字段。
有关更多详细信息,请查看官方文档 Sampling Requests with NGINX Conditional Logging