JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

nginx add_header使用总结 nginx add module

wys521 2024-10-24 16:47:29 精选教程 37 ℃ 0 评论

基本使用

使用add_header允许在响应头中添加自定义字段。

官方文档地址:http://nginx.org/en/docs/http/ngx_http_headers_module.html

参考nginx官方文档,添加响应头的方法如下:

举例:在conf文件的server作用域中添加如下响应头:

server {
  listen 80;
  # 其他配置...

  # 允许跨域
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Methods 'GET, POST';
  add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

	# 其他配置...
}

保存配置,重启nginx服务器,尝试跨域请求nginx目录下的json文件,响应成功。

遇到的坑:反向代理请求报错

由于是在nginx server作用域下设置add_header,会对nginx反向代理的php/tomcat请求生效。

如果php代码中设置了header('Access-Control-Allow-Origin: *');add_header不会覆盖而是追加,响应头会出现Access-Control-Allow-Origin多个定义错误。

解决方法:

在nginx location作用域中设置add_header。一般跨域请求的都是json文件,仅对json文件生效即可。

  location ~ .*\.(json)?$ {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
  }

add_header总结

  1. add_header 指令用于添加响应头字段,当且仅当状态码为200, 201, 204, 206, 301, 302, 303, 304, 307, 308有效。
  2. add_header在其他状态码下也生效,可以加上always,add_header name value always。
  3. 当前作用域(http、server、location、location的if)没有设置add_header的话,会继承外层作用域的add_header设置。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表