使用用新版本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结束
在去翻看一下日志变化吧
可设置多个