`
bloodwolf_china
  • 浏览: 129831 次
社区版块
存档分类
最新评论

nginx处理HTTP header问题

阅读更多
  由于80端口需要root用户才能使用,所以tomcat都是root用户管理的,为了安全起见昨天安装了一个nginx作为反向代理,tomcat改为8080端口。但测试发现有几个接口一直报错,几个HTTP头取不到值,比对其他请求发现是包含了下划线。在百度和stackoverflow上查找问题发现,要求配置一下nginx,支持HTTP Header name支持下划线:

引用

underscores_in_headers on | off;

Default:off
Context:http, server

Enables or disables the use of underscores in client request header fields. When the use of underscores is disabled, request header fields whose names contain underscores are marked as invalid and become subject to the ignore_invalid_headers directive.
level, its value is only used if a server is a default one. The value specified also applies to all virtual servers listening on the same address and port.


但是nginx为什么要加这个配置呢,查找资料有的说HTTP Header name不能包含下划线。
翻了翻HTTP RFC,好像没有这个要求。
3.2 Header Fields
引用
Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace.

  header-field   = field-name ":" OWS field-value OWS   
  field-name     = token


token的范思科表达式定义:
token          = 1*tchar   
tchar          = "!" / "#" / "$" / "%" / "&" / "'" / "*"                  / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"                   / DIGIT / ALPHA                  ; any VCHAR, except delimiters
Delimiters are chosen from the set of US-ASCII visual characters not allowed in a token (DQUOTE and "(),/:;<=>?@[\]{}").


如果没理解错的话,HTTP header name应该可以包含下划线的。
还是下划线在nginx里有特殊用途,好像有的说是cgi会用到。
分享到:
评论

相关推荐

    nginx配置教程之add_header的坑详解

    它的处理阶段比 location 处理晚,虽然可以写在 location 中,但如果 rewrite 别的 location,那么上一个 location 中尚未处理的 add_header 就会丢失。比如: location = /a { add_header a

    Nginx负载均衡特点

    6、Nginx对请求的异步处理可以帮助节点服务器减轻负载; 7、Nginx能支持http和Email,这样就在适用范围上面小很多; 8、不支持Session的保持、对Big request header的支持不是很好, 另外默认的只有Round-robin...

    nginx配置教程

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低...

    nginx 1.9 window 版本

    #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { root /var/www/virtual/htdocs; #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小...

    nginx-1.17.7.zip

    Bugfix:如果请求 URI 被重写为包含空字符的 URI,则"Location"的响应 header 行可能包含垃圾 Bugfix:使用"error_page"指令返回重定向时,带有正文的请求会被错误处理;该错误在 0.7.12 中出现过 Bugfix:使用 ...

    Nginx的超时timeout配置详解

    Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能。 keepalive_timeout HTTP 是一种无状态协议,客户端向服务器发送一个 ...

    php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式

    先给大家介绍下php 与 nginx 的两种处理方式,具体内容如下所示: 1.IP:Port 监听方式 php-fpm docker pull PHP:2.4-alpine nginx.conf fastcgi_pass 127.0.0.1:9000; php-fpm 在容器里的 nginx.conf location /...

    静态文件访问不到报No Access-Control-Allow-Origin处理办法

    静态文件访问不到报No 'Access-Control-Allow-Origin' header is present on the requested resource处理办法

    Nginx反向代理实现支持长连接详解

    Nginx upstream与后端的连接默认为短连接,通过HTTP/1.0向后端发起连接,并把请求的”Connection” header设为”close”。Nginx与前端的连接默认为长连接,一个用户跟Nginx建立连接之后,通过这个长连接发送多个请求...

    Nginx服务器中处理AJAX跨域请求的配置方法讲解

    Nginx 实现AJAX跨域请求 ...add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET

    Nginx session丢失问题处理解决方法

    在用nginx的反向代理tomcat的路径中,可能会出现session丢失问题。每发送一次请求 JESSIONID 都会发生改变,说明上一次形成的session丢失,从而创建新的session。 第一种情况: server{ listen 80; server_name...

    Nginx转发socket端口配置详解

    Nginx 转发 socket 端口...额外的问题就是一些 header 参数也需要在转发过程中带给 socket 服务提供者,其他只需要 Nginx 处理一下从常规协议转换到 Websocket 就可以。 其中,”Upgrade” 是 逐跳(hop-by-hop) 头,

    配置好的nginx,Windows版本,解压即用只需稍微修改下service即可。

    proxy_set_header X-Real-IP $remote_addr; location /app/ { # 动态页面,交给tomcat处理 proxy_pass http://127.0.0.1:8080; } location / { # 动态页面,交给tomcat处理 proxy_pass ...

    利用nginx解决cookie跨域访问的方法

    一、写在前面 最近需要把阿里云上的四台服务器的项目迁移到客户提供的新的项目中,原来的四台服务器中用到了一级域名和二级域名。...其他系统可以共享这个cookie。但是新的四台服务器中并没有申请域名,只有四个ip: ...

    nginx泛域名解析配置教程

    最近一个项目需要承载高并发请求,所以在后端语言上选择了NodeJs,但是nodejs有时候读取不到请求的主机名,所以想到使用nginx+nodejs的方式进行处理。 Nginx 配置  代码如下 upstream io_nodes { server ...

    Nginx服务器搭建反向代理全攻略

    Nginx反向代理有不少需要我们解决的问题,其中有不少问题是基于安装上的问题,在安装完成后的相关调试也让很多人头疼不已。下面就向大家介绍有关于安装和调试的相关介绍。 由于服务器apache抗不住目前的并发.加上...

    使用Nginx反向代理到go-fastdfs的方法示例

    go-fastdfs是支持http协议的一款分布式文件系统,在一般的项目中,很少是直接将文件系统的地址暴露出来的,大多数都会通过nginx等软件进行反代过去,由于我司的业务和网络环境场景相对特殊,由公网部分(公有云)和...

    Nginx配合Apache或Tomcat的动静分离基本配置实例

    其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcat、resin或jboss。nginx跑静态的能力是无与伦比的,是目前web服务器里最强的。nginx和apache、tomcat、resin的...

    java防跨站点源码

    配置化防跨站点处理,很好的处理防跨站点,配置简单

Global site tag (gtag.js) - Google Analytics