94 过滤模块 从下到上顺序

 

server {

  listen 30004;
  server_name shop***s.com.cn;

        location /{
proxy_pass http://test;
proxy_hide_header aaa; #启动某个头部隐藏 则不会返回给客户端
proxy_pass_header server;
proxy_ignore_headers X-Accel-Limit-Rate;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_method POST;
} }
upstream test {
server 192.168.0.51: weight= ; }

上游服务器代码

server { listen ; location / { add_header aaa 'aaa value'; #这里加了个头 } }

测试代码

[root@ webserver]# curl sh****s.com.cn: -I
HTTP/1.1 OK
Server: openresty/1.13.6.2
Date: Sun, May :: GMT
Content-Type: text/html
Content-Length:
Connection: keep-alive
Last-Modified: Sat, Mar :: GMT
ETag: "5c95f469-264"
aaa: aaa value //如果我们不隐藏指定头部则响应给客户端
Accept-Ranges: bytes

ngx_http_proxy_module 模块

Syntax: proxy_ignore_headers field ...;
Default:
Context: httpserverlocation

功能 :某些行为可能会改变nginx行为,使用proxy_ignore_hreades可以禁止他们生效

可以禁用的头部:

  1. X-Accel_Redirect : 由上游服务指定nginx内部重定向 控制请求的执行
  2. X-Accel-Limit-Rate: 由上游设置发往客户端速度限制 等同于limit_rate指令
  3. X-Accel-Buffering:由上游控制是否缓存上游的响应
  4. X-Accel-Charset:由上游控制 Content-Type中的Charset

缓存相关:

  1.   X-Accel-Expires:设置响应在nginx中的缓存时间 单位秒 ;@开头表示一天内的某时刻
  2.   Expires:控制nginx缓存时间 优先级低于 X-Accel-Expires
  3.   Cache-Control: 控制nginx缓存时间 优先级低于 X-accel-Expires
  4.   Set-Cookie:响应出现Set-Cookie则不缓存  可以通过proxy_ignore_headers 禁止生效
  5.   Vary 响应中出现Vary:* 则不缓存 可以禁止生效

proxy_hide_header 指令是指对于上游响应中的某些头部,设置不向客户端转发 默认不转发

  1. Date:由nginx_http_header_filter_module过滤模块填写,值为nginx发送响应头部的时间
  2. Server:由nginx_http_header_filter_module过滤模块填写 ,值为nginx版本
  3. X-Pad:通常是Apache为避免浏览器BUG生成头部,默认忽略
  4. X-Accel-:用于控制nginx行为的响应,不需要向客户端转发
Syntax: proxy_hide_header field;
Default:
Context: httpserverlocation


proxy_pass_header 对于被已经被proxy_hide_header的头部,设置向上游转发

Syntax: proxy_pass_header field;
Default:
Context: httpserverlocation

proxy_cookie_domain 指令是指修改域名 如:域名是A 则修改成 B

Syntax: proxy_cookie_domain off;
proxy_cookie_domain domain replacement;
Default:
proxy_cookie_domain off;
Context: httpserverlocation
proxy_cookie_domain localhost example.org; #用于域名替换
Syntax: proxy_cookie_path off;
proxy_cookie_path path replacement;
Default:
proxy_cookie_path off;
Context: httpserverlocation
proxy_cookie_path off;
proxy_cookie_path /two/ /; #用于uri替换
proxy_cookie_path ~*^/user/([^/]+) /u/$;

Syntax:proxy_redirect default;
    proxy_redirect off;
    proxy_redirect redirect replacement;
Default:proxy_redirect default;

Context:httpserverlocation

proxy_redirect http://localhost:8000/two/ http://frontend/one/;

Nginx 返回响应过滤响应内容的更多相关文章

  1. application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

    application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应 ...

  2. 响应消息的内容类型 text/html; charset=utf-8 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配。

    问题表述: 响应消息的内容类型 text/html; charset=utf-8 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配. 说明: 此类问题当 ...

  3. flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法

    请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...

  4. HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码

    原文地址:HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码 HttpServletRespo ...

  5. Spring Cloud Gateway修改请求和响应body的内容

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. nginx 返回json格式内容

    例子: #如果访问的ip是192.168.1.1,就直接返回json格式的内容 location / { default_type application/json; #####格式 if ( $re ...

  7. NGINX: 返回大 JSON 数据不完整的问题

    说明: 内容全部来自 [ CSDN 金玮良 ] nginx 返回数据不完整的问题 当nginx 遇到大数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端. 那如果这个结论成立, 那一次请求的数据 ...

  8. Nginx使用教程(五):使用Nginx缓存之缓存静态内容

    NGINX虽然已经对静态内容做过优化. 但在高流量网站的情况下,仍然可以使用open_file_cache进一步提高性能. NGINX缓存将最近使用的文件描述符和相关元数据(如修改时间,大小等)存储在 ...

  9. nginx 返回数据不完整

    当nginx 代理解析大量数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端 一次请求的数据量很大, 则会有一部分数据会被忽略掉 前端解析数据会有问题 致使页面白屏 nginx 返回数据不完整的 ...

随机推荐

  1. js 动态调用字符串方法并传入对应参数

    在项目应用中,经常会需要根据业务数据需要动态去拼凑字符串,然后将字符串作为js代码进行执行. js提供eval()来支持.这里分享一个调用函数并传入需要参数的一个方法demo //动态调用自定义js方 ...

  2. GC调优在Spark应用中的实践(转载)

    Spark是时下非常热门的大数据计算框架,以其卓越的性能优势.独特的架构.易用的用户接口和丰富的分析计算库,正在工业界获得越来越广泛的应用.与Hadoop.HBase生态圈的众多项目一样,Spark的 ...

  3. 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

  4. 大数据不就是写SQL吗?

    应届生小祖参加了个需求分析会回来后跟我说被产品怼了一句: "不就是写SQL吗,要那么久吗" 我去,欺负我小弟,这我肯定不能忍呀,于是我写了一篇文章发在了公司的wiki 贴出来给大家 ...

  5. 朱晔和你聊Spring系列S1E3:Spring咖啡罐里的豆子

    标题中的咖啡罐指的是Spring容器,容器里装的当然就是被称作Bean的豆子.本文我们会以一个最基本的例子来熟悉Spring的容器管理和扩展点. 阅读PDF版本 为什么要让容器来管理对象? 首先我们来 ...

  6. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 用户密码安全增强

    系统的用户密码是有多少重要大家应该心里都有数,一个系统的密码若是大批量泄露,哪怕是少数几个人密码泄露了,都是致命的. 1: 系统里不要保存明文密码,那是引诱人家犯罪.2: 首先防范的不是外鬼,先需要防 ...

  7. UnderWater+SDN论文之五

    Underwater Sensor Networks with Mobile Agents: Experience from the Field Source: LNICST 2013 论文是来自两个 ...

  8. 通过Webstorm上传代码到Github、更新代码后同步到github及克隆github代码到本地的方法

    导读: Github做为IT爱好者分享代码的一个知名的平台,广受大家喜欢,那么我们平时该怎么将自己写的代码上传到github上面保存并且提供给其他人参考? 我想方法不外乎如下几个: 1.直接在gith ...

  9. Integer的NPE问题

  10. Python_服务器与多客户端通信、UDP协议、pycharm打印带颜色输出、时间同步的机制

    1.服务器与多客户端通信 import socket # 创建tcp socket的套接字 sk = socket.socket() # bind sk.bind(('127.0.0.1',8080) ...