摘要:

今天想给两个网站分别启用网站访问日志,相当于给不同虚拟主机添加日志的意思吧,其实一般情况下,如果nginx.conf配置文件里的http里 面没设置access_log off;默认是会把所有访问日志输出到/var/log/nginx目录下面,现在要把不同网站的日志区分开来,所以添加了access_log off。

按照之前很多网上的配置方法是在各个虚拟主机配置文件的server段里添加日志格式和日志输出路径,如下

log_format access '$remote_addr - $remote_user [$time_local]"$request" ''$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';
access_log  /home/wwwlogs/ddhow.com.log access;
error_log  /home/wwwlogs/ddhow.com-error.log;
上面大概的意思是定义一个名为access的日志格式,然后调用他来输出到/home/wwwlogs/ddhow.com.log这个位置。error_log这一段是错误日志,用的是默认的格式,没有定义。这样配置完每个虚拟主机文件后,重启,你可能会出现“nginx: [warn] the "log_format" directive may be used only on "http" level in /etc/nginx/conf.d/xxx.com.conf:24"类似这样的警告。开始我还以为是我格式写错了,后事上网查了下,据说是新版本的nginx,日志格式log_format只能定义在http里,那这样一来,感觉也挺方便了,把这段定义

今天想给两个网站分别启用网站访问日志,相当于给不同虚拟主机添加日志的意思吧,其实一般情况下,如果nginx.conf配置文件里的http里面没设置access_log off;默认是会把所有访问日志输出到/var/log/nginx目录下面,现在要把不同网站的日志区分开来,所以添加了access_log off。

按照之前很多网上的配置方法是在各个虚拟主机配置文件的server段里添加日志格式和日志输出路径,如下

log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log  /home/wwwlogs/ddhow.com.log access;
error_log  /home/wwwlogs/ddhow.com-error.log;

上面大概的意思是定义一个名为access的日志格式,然后调用他来输出到/home/wwwlogs/ddhow.com.log这个位置。error_log这一段是错误日志,用的是默认的格式,没有定义。这样配置完每个虚拟主机文件后,重启,你可能会出现“nginx: [warn] the "log_format" directive may be used only on "http" level in /etc/nginx/conf.d/xxx.com.conf:24"类似这样的警告。开始我还以为是我格式写错了,后事上网查了下,据说是新版本的nginx,日志格式log_format只能定义在http里,那这样一来,感觉也挺方便了,把这段定义加到nginx.conf配置文件的http里面

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

然后每个虚拟主机配置文件server里调用这个access的格式就行了

access_log  /home/wwwlogs/ddhow.com.log access;

其实如果你不定义一个格式,直接开启日志,像这样

access_log  /home/wwwlogs/ddhow.com.log;

没有后面的access,它一样会默认输出日志,而且格式和上面定义的是一样的,只不过上面定义的还可以进一步的修改成自己需要的格式。

另外,nginx默认会记录图片,css,swf,js等的访问日志,有时候我们不需要这些信息,不记录图片等,可以把它去掉以节省空间,同样是在虚拟主机的配置文件server里面添加

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      7d;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      1d;
        access_log off;
    }

上面这两段除了关闭了图片等访问日志,还设置了缓存,就是对这些gif|jpg|jpeg|png|bmp|swf等后缀的文件,设置一个缓存时间过期时间,图片等设置了7天,js和css设置了1天,然后加上了access_log off;关闭他们的日志记录。