当前位置: 代码网 > it编程>数据库>MsSqlserver > nginx日志打印请求头信息示例详解

nginx日志打印请求头信息示例详解

2024年11月12日 MsSqlserver 我要评论
问题:发现nginx转发的时候,似乎把在请求头中自定义的字段弄丢了~~,所以想尝试打印出请求头找出具体原因一、打印nigx请求头只需要简单改造下nginx.conf中的配置即可http { in

问题:

发现nginx转发的时候,似乎把在请求头中自定义的字段弄丢了~~,所以想尝试打印出请求头找出具体原因

一、打印nigx请求头

只需要简单改造下nginx.conf中的配置即可

http {
    include       mime.types;
    default_type  application/octet-stream;

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

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    underscores_in_headers on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    server_names_hash_bucket_size 512;
    client_max_body_size 500m;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
}

其中改动的位置为

log_format ,打印请求头中的自定义参数为user_id,所以要在配置中添加 “$http_user_id” 没错,带有 $http_ 前缀

access_log logs/access.log main; 使它打印在日志中,查看日志即可

二、但是我的不生效

经过不断尝试,发现一个问题,我的自定义key为 user_id ,但是默认情况下,nginx是不支持下划线字段的!

也就是说如果是 user-id 那么就没问题

我现在需要的字段就是user_id

在nginx.conf中做加入如下配置:

underscores_in_headers on;

依然是http模块,上面其实已经有了

总结

  • 打印请求头中的变量,需要加前缀 $http_
  • 想要nginx转发或者打印带有下划线的变量的时候,需要开启下划线的支持 underscores_in_headers on;

到此这篇关于nginx日志打印请求头信息的文章就介绍到这了,更多相关nginx日志打印请求头信息内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com