Nginx操作响应头信息如何实现
发布时间 - 2023-05-13 00:00:00 点击率:次前置条件:需要编译 ngx_http_headers_module 模块,才支持 header 头信息操作
add_header
意思为将自定义的头信息的添加到响应头,指令为 add_header name value [always];,可以用在 http {}, server {}, location {}, if in location {} 上下文中,
只有当响应状态码等于 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), 或 308 (1.13.0) 时生效,如果 always 参数指定了,头信息将无视状态码,在所有响应中强制返回。
注意: 可以声明多个 add_header 指令,当且仅当 当前区块没有 add_header 的时候,才会继承上级声明的 add_header 信息
例如:
server {
add_header a 123;
location / {
root /path;
}
location /download/ {
add_header b 321;
}
}如上的例子,在访问 /download/ 路由的时候,将返回 b 321 这样的头信息,而访问 / 路由时,将返回上级指定的 a 123 头信息。
add_trailer
意思为将自定义的头信息添加到响应头的末尾,指令为 add_trailer name value [always];,可以用在 http {}, server {}, location {}, if in location {} 上下文中,只有当响应状态码等于 200, 201, 206, 301, 302, 303, 307, 或 308 时生效,如果 always 参数指定了,头信息将无视状态码,在所有响应中强制返回。
注意: 可以声明多个 add_trailer 指令,当且仅当 当前区块没有 add_trailer 的时候,才会继承上级声明的 add_trailer 信息
举例参考 add_header 的例子。
expires
启用或禁用,添加或修改响应头中的 "expires" 和 "cache-control" 字段,指令为 expires [modified] time; 或者 expires epoch | max | off; 当响应状态码等于200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307
(1.1.16, 1.0.13), 或 308 (1.13.0) 时生效,time 参数可以为正时间或者负时间。"expires" 字段中的时间计算为当前时间和在 time 中指定的时间总和。如果使用该 modified 参数(0.7.0,0.6.32),则将时间计算为文件修改时间与 time 指令中指定的时间之和。
此外,可以使用 "@" 前缀(0.7.9,0.6.34)指定一天中的时间:expires @15h30m;
"cache-control" 字段的内容取决于指定时间的符号:
时间为负数 - "cache-control: no-cache"
时间为正数或者0 - "cache-control: max-age=t" t 是指令中指定的时间,以秒为单位
epoch 参数将 "expires" 设置为值 "thu, 01 jan 1970 00:00:01 gmt",将"cache-control" 设置为 "no-cache"。
max 参数将 "expires" 设置为值 "thu, 31 dec 2037 23:55:55 gmt",将"cache-control" 设置为 10 年。
off 参数禁用添加或修改 "expires" 和 "cache-control" 响应头字段。
最后一个参数值可以包含变量(1.7.9): 例如:
map $sent_http_content_type $expires {
default off;
application/pdf 42d;
~image/ max;
}
expires $expires;
# nginx
# if
# 继承
# location
# http
# 设置为
# 多个
# 才会
# 自定义
# 时间为
# 用在
# 可以使用
# 则将
# class
# pre
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Java遍历集合的三种方式
如何为不同团队 ID 动态生成多个独立按钮
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
网站制作企业,网站的banner和导航栏是指什么?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
EditPlus中的正则表达式实战(5)
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
php结合redis实现高并发下的抢购、秒杀功能的实例
如何登录建站主机?访问步骤全解析
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
EditPlus 正则表达式 实战(3)
千库网官网入口推荐 千库网设计创意平台入口
黑客入侵网站服务器的常见手法有哪些?
英语简历制作免费网站推荐,如何将简历翻译成英文?
历史网站制作软件,华为如何找回被删除的网站?
微信小程序 scroll-view组件实现列表页实例代码
如何快速辨别茅台真假?关键步骤解析
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
香港服务器建站指南:免备案优势与SEO优化技巧全解析
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
googleplay官方入口在哪里_Google Play官方商店快速入口指南
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
jQuery中的100个技巧汇总
Android仿QQ列表左滑删除操作
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
iOS验证手机号的正则表达式
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
如何在服务器上三步完成建站并提升流量?
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel如何使用Service Container和依赖注入?(代码示例)
Swift中swift中的switch 语句
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何在橙子建站上传落地页?操作指南详解
微信小程序 HTTPS报错整理常见问题及解决方案
使用Dockerfile构建java web环境
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Android GridView 滑动条设置一直显示状态(推荐)
免费视频制作网站,更新又快又好的免费电影网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何生成腾讯云建站专用兑换码?

