nginx之日志路径配置小知识点

1:在nginx的conf文件中配置了日志的格式 main或者logstash_json,但是在子配置文件中一直报错无效的格式

 

nginx.conf的配置如下

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

    log_format logstash_json '{"@timestamp": "$time_iso8601", '
                        '"time_local": "$time_local", '
                        '"remote_addr": "$remote_addr", '
                        '"remote_user": "$remote_user", '
                        '"request": "$request", '
                        '"referer": "$http_referer", '
                        '"request_time": "$request_time", '
                        '"request_body": "$request_body", '
                        '"uri": $uri, '
                        '"status": $status, '
                        '"logger": "nginx", '
                        '"agent": "$http_user_agent", '
                        '"scheme": "scheme", '
                        '"server_name": $server_name, '
                        '"bytes":$body_bytes_sent, '
                        '"bytes_sent":$bytes_sent, '
                        '"http_cookie": $http_cookie, '
                        '"http_host": $http_host, '
                        '"http_x_api_method": $http_x_api_method, '
                        '"http_x_api_sign": "$http_x_api_sign", '
                        '"http_x_api_userid":$http_x_api_userid, '
                        '"http_x_forwarded": "$http_x_forwarded_for", '
                        '"upstr_addr": "$upstream_addr",'
                        '"upstr_host": "$upstream_http_host",'
                        '"upstream_status": "$upstream_status",'
                        '"ups_resp_time": "$upstream_response_time"}';

    access_log  logs/access.log  logstash_json;
    error_log  logs/error.log;

file.conf的配置如下:

access_log /home/logs/nginx/8888.log logstash_json;

 

 但是检测文件的时候就是一直报错,最后才发现问题是:

nginx加载配置的时候从上往下顺序加载,加载了子配置文件conf还没有加载到日志格式,所以就是不管什么格式都是会报错的,所以在nginx.conf引用外部子配置文件的时候引用语句include最好放置在nginx.conf文件的末尾即可。。

都是粗心惹的祸。。。。。。谨记谨记。

posted @ 2021-12-17 10:58  卜闻卜问卜听卜在乎  阅读(1266)  评论(0编辑  收藏  举报