Nginx修改传入无效头

enxuqcxy  于 2023-08-03  发布在  Nginx
关注(0)|答案(2)|浏览(136)

我有一个关于nginx配置的问题。我向nginx发送了一个请求,我知道它的头是无效的,我想用nginx修改这个头,使它有效。
请求:

  1. curl -X POST -d "data=string" -H "Host:192.168.99.100" -H "Connection: close" -H "Accept-Encoding: identity" -H "Content-Type: application/x-www-form-urlencoded" -H "Content-Length: 22\r\n" -i http://192.168.99.100/protocol_1.2

字符串
注意Content-Length:22\r\n(CRLF)
然后在error.log中,使用loglevel INFO,我得到

  1. [info] 5#0: *1 client sent invalid "Content-Length" hader while reading client request headers, client: 192.168.99.1, server: example.org,request: "POST /protocol_1.2 HTTP/1.1", host: "192.168.99.100"


不幸的是,我不能修改请求的源代码,所以想在nginx中修改它。有没有一种方法可以让我在传入的头被nginx处理之前修改它们?
我的站点启用非常简单:

  1. server {
  2. listen 80;
  3. server_name example.org;
  4. charset utf-8;
  5. error_log /var/log/nginx/error.log info;
  6. ignore_invalid_headers on;
  7. location /static {
  8. alias /usr/src/app/static;
  9. }
  10. location / {
  11. proxy_pass http://music:8010;
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. }
  16. }


谢谢你,凯文

qfe3c7zg

qfe3c7zg1#

这个论点:

  1. -H "Content-Length: 22\r\n"

字符串
应该是:

  1. -H "Content-Length: 22"

ohtdti5x

ohtdti5x2#

也许你可以在nginx. conf中尝试'ignore_invalid_headers'。仅供参考

相关问题