配置 nginx格式为 json,这样便于人性化阅读,也方便将 nginx日志对接到 elk(elasticsearch+logstash+kibana) 日志管理中心。
    这里要说明一点:日志格式修改为 json,对 nginx没有任何影响,请放心修改。

    我们以 nginx.conf 为例进行配置演示

    1. user www www;
    2. worker_processes auto;
    3. pid /var/run/nginx.pid;
    4. events {
    5. use epoll ;
    6. worker_connections 4096;
    7. multi_accept on;
    8. }
    9. http {
    10. include mime.types;
    11. default_type application/octet-stream;
    12. vhost_traffic_status_zone;
    13. vhost_traffic_status_filter_by_host on;
    14. sendfile on;
    15. tcp_nopush on;
    16. tcp_nodelay on;
    17. keepalive_timeout 65;
    18. server_names_hash_bucket_size 512 ;
    19. client_header_buffer_size 128k;
    20. large_client_header_buffers 8 64k;
    21. client_max_body_size 500m;
    22. #这里定义 access 日志格式 为json格式
    23. log_format json '{"created_at":"$time_iso8601",'
    24. '"remote_addr":"$remote_addr",'
    25. '"method":"$request_method",'
    26. '"request":"$request",'
    27. '"status":"$status",'
    28. '"size":$body_bytes_sent,'
    29. '"referer": "$http_referer",'
    30. '"http_host":"$http_host",'
    31. '"response_time":$request_time,'
    32. '"http_x_forwarded_for":"$http_x_forwarded_for",'
    33. '"user_agent": "$http_user_agent"'
    34. '}' ;
    35. # 接口访问日志的最后一个参数 json 是前面定义的,这里引用一下
    36. access_log /usr/local/nginx/logs/access.log json;
    37. # 注意:错误日志没有格式,nginx 默认语法即可
    38. error_log /usr/local/nginx/logs/error.log;
    39. server{
    40. listen 80 ;
    41. # 站点域名,没有的话,写项目名称即可
    42. server_name www.ginskeleton.com ;
    43. charset utf-8 ;
    44. location / {
    45. root /usr/local/nginx/html;
    46. index index.html index.htm;
    47. }
    48. # 提供 nginx 运行指标采集接口,供 prometheus 软件采集
    49. location /status {
    50. vhost_traffic_status_display;
    51. vhost_traffic_status_display_format html;
    52. }
    53. # 以下是静态资源缓存配置
    54. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    55. {
    56. expires 30d;
    57. }
    58. location ~ .*\.(js|css)?$
    59. {
    60. expires 12h;
    61. }
    62. location ~ /\.
    63. {
    64. deny all;
    65. }
    66. }
    67. }

    最终生成的日志格式:
    nginx_access.png