Nginx 返回响应过滤响应内容
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 |
|---|---|
| Default: | — |
| Context: | http, server, location |
功能 :某些行为可能会改变nginx行为,使用proxy_ignore_hreades可以禁止他们生效
可以禁用的头部:
- X-Accel_Redirect : 由上游服务指定nginx内部重定向 控制请求的执行
- X-Accel-Limit-Rate: 由上游设置发往客户端速度限制 等同于limit_rate指令
- X-Accel-Buffering:由上游控制是否缓存上游的响应
- X-Accel-Charset:由上游控制 Content-Type中的Charset
缓存相关:
- X-Accel-Expires:设置响应在nginx中的缓存时间 单位秒 ;@开头表示一天内的某时刻
- Expires:控制nginx缓存时间 优先级低于 X-Accel-Expires
- Cache-Control: 控制nginx缓存时间 优先级低于 X-accel-Expires
- Set-Cookie:响应出现Set-Cookie则不缓存 可以通过proxy_ignore_headers 禁止生效
- Vary 响应中出现Vary:* 则不缓存 可以禁止生效
proxy_hide_header 指令是指对于上游响应中的某些头部,设置不向客户端转发 默认不转发
- Date:由nginx_http_header_filter_module过滤模块填写,值为nginx发送响应头部的时间
- Server:由nginx_http_header_filter_module过滤模块填写 ,值为nginx版本
- X-Pad:通常是Apache为避免浏览器BUG生成头部,默认忽略
- X-Accel-:用于控制nginx行为的响应,不需要向客户端转发
| Syntax: | proxy_hide_header |
|---|---|
| Default: | — |
| Context: | http, server, location |
proxy_pass_header 对于被已经被proxy_hide_header的头部,设置向上游转发
| Syntax: | proxy_pass_header |
|---|---|
| Default: | — |
| Context: | http, server, location |
proxy_cookie_domain 指令是指修改域名 如:域名是A 则修改成 B
| Syntax: | proxy_cookie_domain proxy_cookie_domain |
|---|---|
| Default: |
proxy_cookie_domain off; |
| Context: | http, server, location |
proxy_cookie_domain localhost example.org; #用于域名替换
| Syntax: | proxy_cookie_path proxy_cookie_path |
|---|---|
| Default: |
proxy_cookie_path off; |
| Context: | http, server, location |
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:http, server, location
proxy_redirect http://localhost:8000/two/ http://frontend/one/;
Nginx 返回响应过滤响应内容的更多相关文章
- application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型
application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype 后台返回的数据响应 ...
- 响应消息的内容类型 text/html; charset=utf-8 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配。
问题表述: 响应消息的内容类型 text/html; charset=utf-8 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配. 说明: 此类问题当 ...
- flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法
请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...
- HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码
原文地址:HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码 HttpServletRespo ...
- Spring Cloud Gateway修改请求和响应body的内容
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- nginx 返回json格式内容
例子: #如果访问的ip是192.168.1.1,就直接返回json格式的内容 location / { default_type application/json; #####格式 if ( $re ...
- NGINX: 返回大 JSON 数据不完整的问题
说明: 内容全部来自 [ CSDN 金玮良 ] nginx 返回数据不完整的问题 当nginx 遇到大数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端. 那如果这个结论成立, 那一次请求的数据 ...
- Nginx使用教程(五):使用Nginx缓存之缓存静态内容
NGINX虽然已经对静态内容做过优化. 但在高流量网站的情况下,仍然可以使用open_file_cache进一步提高性能. NGINX缓存将最近使用的文件描述符和相关元数据(如修改时间,大小等)存储在 ...
- nginx 返回数据不完整
当nginx 代理解析大量数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端 一次请求的数据量很大, 则会有一部分数据会被忽略掉 前端解析数据会有问题 致使页面白屏 nginx 返回数据不完整的 ...
随机推荐
- Generative Adversarial Nets[Pre-WGAN]
本文来自<towards principled methods for training generative adversarial networks>,时间线为2017年1月,第一作者 ...
- Charles抓包显示乱码解决方法
[问题现象] 在抓https协议请求时,Request和Response显示乱码了: [解决办法] 第一步:点击 [工具栏-->Proxy-->SSL Proxying Settings. ...
- 关于学习JAVA第二章的心得
这章主要讲了JAVA的变量,数据类型和运算符的使用方法及规则. 其实在大一的时候接触过一点C和C++的知识所以对变量,数据类型,运算符还是有一定了解的. 变量其实就是存储数据的空间.我们每次使用某一种 ...
- SpringMVC自动封装List对象 —— 自定义参数解析器
前台传递的参数为集合对象时,后台Controller希望用一个List集合接收数据. 原生SpringMVC是不支持,Controller参数定义为List类型时,接收参数会报如下错误: org.sp ...
- 纯手写AJAX
function ajax(){ //http相应对象 var xmlhttp; //判断浏览器 if(window.XMLHttpRequest){ xmlhttp = new XMLHttpReq ...
- sublime插件不能使用,提示plugin_host has exited unexpectedly
sublime Text3一打开软件就提示plugin_host has exited unexpectedly,插件不能使用 解决方法很简单: 1.首先,ctrl + shift + p --&g ...
- 爬虫(二)之scrapy框架
01-scrapy介绍 02-项目的目录结构: scrapy.cfg 项目的主配置信息.(真正爬虫相关的配置信息在settings.py 文件中) items.py 设置数据存储模板,用于结构化数据, ...
- 【评分】Beta 答辩总结
[评分]Beta 答辩总结 总结 按时交 - 有分 晚交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 倒扣本次作业分数 由于前期不够重视,到beta评分才发现有5组的代码提交仅由一人&qu ...
- Day12 Python基础之生成器、迭代器(高级函数)(十)
https://www.cnblogs.com/yuanchenqi/articles/5769491.html 1. 列表生成式 我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7 ...
- 使用HDTune规避硬盘上损坏的扇区
如何使用HDTune扫描磁盘上的错误在网上已经有很多帖子了,但扫描到之后如何用HDTune来规避硬盘上损坏的扇区呢? HDTune并不能直接规避,而是需要重新划分磁盘的卷.HDTune一行有50个小方 ...

