Nginx的日志
Posted csfreebird
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx的日志相关的知识,希望对你有一定的参考价值。
一直都是使用默认的nginx日志,直到发现需要通过日志来检查配置的rule是否正确。
先来个简单的,在server里面配置日志:
# HTTP server
server
listen 80;
server_name localhost;
if ($uri ~* "/login_page$")
rewrite ^/(.*)$ https://$host/$1 redirect;
access_log /opt/kaimei.log;
location /
root html;
index index.html index.htm;
...
现在就可以在/opt/kaimei.log下面看到访问日志。
进一步,如果有多个server配置,可以每个配不同的日志,比如我还有一个HTTPS的 server.
# HTTPS server
server
listen 443;
server_name localhost;
ssl on;
ssl_certificate /usr/nginx/conf/server.crt;
ssl_certificate_key /usr/nginx/conf/server.key;
access_log /opt/kaimei_https.log;
日志的格式
参考文档http://wiki.nginx.org/HttpLogModule
前面没有在access_log指令后面指定日志格式,因此采用的是默认格式combined. 格式定义如下:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
一共8个部分。
设置自己的日志格式
在http设置里面,添加如下配置:
log_format my_log '$remote_addr | $remote_user | [$time_local] | ' |
'"$request" | $status | $body_bytes_sent |' | fastcgi_param SCRIPT_NAME /kaimei;
'"$http_referer" | "$http_user_agent" |';
然后在所有access_log的指定后面第二个参数使用my_log
关闭某个日志
经常碰到favicon.ico找不到的日志,直接关闭它。
location = /favicon.ico
log_not_found off;
以上是关于Nginx的日志的主要内容,如果未能解决你的问题,请参考以下文章