nginx新版本配置文件警告 the "log_format" directive may be used only on "http"

使用用新版本nginx的人不会对这个警告陌生吧

[root@kinggoo.com vhost]# /opt/webserver/nginx/sbin/nginx -t
nginx: [warn] the "log_format" directive may be used only on "http" level in /opt/path/nginx/conf/vVVhost/abc.kinggoo.com:38
nginx: the configuration file /opt/path/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/path/nginx/conf/nginx.conf test is successful

对于这个问题在我以前刚使用nginx的较新版本时就出现了这个问题,当时只是暂且处理掉这个警告,方法就是:把log_format和access_log、error_page放到server的外面(当然也可以注释掉),比如我之前就是放到外面,字体蓝色部分

[root@kinggoo vhost]# vim  kinggoo.com
    server { //这是server开始
        listen       80;
        server_name  kinggoo.com
www.kinggoo.com;
        ….
        …. 这里代表都是配置
        ….

        } //这是server结束
       log_format  kinggoo.com  ‘$remote_addr – $remote_user [$time_local] "$request" ‘
                         ‘$status $body_bytes_sent "$http_referer" ‘
                         ‘"$http_user_agent" "$http_x_forwarded_for"’;
      access_log  /data0/nginx/weblogs/access_blog.kinggoo.com.log  kinggoo.com;
      error_page   500 502 503 504 404 403 /50x.html;

但这种办法有个坏处(md把access_log放在最外面了坏处能少么),只要有访问,不管你设置了多少个server的虚拟主机,只要有访问一个服务,马上全部的日志文件都会有变化,这样走的好笑之处就是你会发现日志文件一样大~

今天在另外一个机器上看,才发现日志都一样大,变化都一样的问题(自己机器懒得管这么多)。所以合计改改,下面是我这次的日志配置

[root@kinggoo vhost]# vim  kinggoo.com 
   log_format  kinggoo.com  ‘$remote_addr – $remote_user [$time_local] "$request" ‘
                         ‘$status $body_bytes_sent "$http_referer" ‘
                         ‘"$http_user_agent" "$http_x_forwarded_for"’;

    server { //这是server开始
        listen       80;
        server_name  kinggoo.com
www.kinggoo.com;
        ….
        …. 这里代表都是配置
        ….

       access_log  /data0/nginx/weblogs/access_blog.kinggoo.com.log  kinggoo.com;
       error_page   500 502 503 504 404 403 /50x.html;

        } //这是server结束

在去翻看一下日志变化吧

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/nginx-warn-log-format.htm
发表评论?

1 条评论。

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据