一 处理上游的响应头部
重点: 生成了响应内容准备'向客户端发送'的时候,响应内容必须经过'过滤模块'的处理
补充: 要关注'默认'行为
(1)禁用上游响应头对nginx的影响
① proxy_ignore_headers
应用层如何控制nginx
背景: 上游的一些'response_header'是可以'改变作为反向代理的nginx的行为'
场景: 想'忽略'这些响应头对'nginx行为'的响应
注意: 仅仅是'取消'对'nginx行为'的影响, 是否'转发给'客户端取决于'proxy_hide_header'
说明: nginx'是否'缓存是由'nginx缓存服务器'与'源服务器'共同决定的
1) proxy_ignore_headers "Expires" "Cache-Control" "Vary";
解读: 如果'上游服务器(源站)' Cache-Control、"Expires" 、Vary响应头,避免影响到nginx缓存
2) proxy_ignore_headers Set-Cookies
场景: 避免客户端把'失效的Cookie'缓存下来
(2)是否转发上游的特定响应头
② proxy_hide_header
说明: 不向'client'发送这些响应头
背景:返回给'客户端'响应头中'包含一些后端信息',虽然'不影响'用户体验,但可能'泄露'隐私信息;
1)了解nginx的默认行为,'自动'隐藏上游服务器的哪些'response header';
2)除了上述的,可以通过配置'(增加其它响应头)','主动'隐藏其它'response header';
3)隐藏'hide'的效果是:nginx不会把'这些响应头'发送给client
思考: 为什么默认要'隐藏Date'和'Server'响应头? --> '上游的信息'
③ proxy_pass_header
细节点: proxy_pass_hider'(后执行)'的优先级'高于'proxy_hide_header
(3)修改上游返回的Set-Cookie响应头
④ 知识铺垫
cookie问题汇总 nginx跨域配置 Cookie头的属性
④ proxy_cookie_domain
说明: 修改上游'Set-Cookies'响应头内容,修改'域名'
补充: 该指令也涉及'PCRE'正则
细节点:
1) 如果'proxy server'中'Set-Cookie'没有"domain属性"或者有"domain属性"但是不匹配则'nginx'不做"domain"操作
2) proxy_cookie_domain负责的'只是处理response Set-cookie头中的domain属性',仅此而已
proxy_cookie_domain的误区
proxy_cookie_domain应用场景
⑤ proxy_cookie_path
'前后段分离':console nginx设置了cookie path,cookie缓存'导致403',删除cookie path
策略:proxy_cookie_path / "/;secure"
⑥ proxy_cookie_flags
作用: 对含义特定'key'的Set-Cookies响应头,对该Set-Cookies响应头'flags'进行'增、删'操作
Cookie samesite简析 应用场景 Cookies Cookie的secure属性
Cookie中的httponly的属性和作用、httponly属性
nginx 反向代理 解决 Cookie 跨域问题
(3)修改返回的Location响应头
⑦ proxy_redirect
说明: 修改上游的'Location'响应头
案例参考 HTTP重定向
++++++++++ 将被代理服务器发出的'重定向'http协议的location改为https协议 ++++++++++
⑧ B站的资源
nginx对哪些HTTP头另眼相看