Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nginx设置header如果没有值

nginx设置header如果没有值

作者头像
十毛
发布于 2022-08-23 07:26:55
发布于 2022-08-23 07:26:55
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

nginx设置header使用谓词proxy_set_header,比如proxy_set_header X-Real-IP $request_addr,但是如何实现只有当X-Real-IP没有值时才设置为$request_addr,如果有值则直接透传呢?可以使用map指令

map指令

map 指令是由 ngx_http_map_module 模块提供的,默认情况下安装 nginx 都会安装该模块。

  • map语法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
map $key $value {
    "china" "中国",
    "usa" "美国",
    default "其他"
}

使用map指令实现setIfAbsent语义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http {
    ...
    map $http_x_real_ip $real_ip {
        default   $http_x_real_ip;
        ""        $remote_addr;
    }
    server {
        location / {
            proxy_set_header X-Request-ID $real_ip;
        }
    }
}

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx反向代理中文字符乱码
2、使用ngx_http_sub_module模块,或者nginx_substitutions_filter ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串。这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module 如果已经安装nginx,只需要再添加这个模块就可以了。此模块替换不区分大小写;支持中文替换
无刺鱼
2022/08/07
3.2K0
Nginx反向代理中文字符乱码
Nginx 一个牛X的功能,流量拷贝!
为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块
良月柒
2020/03/12
9950
Nginx 一个牛X的功能,流量拷贝!
反向代理与 Real-IP 和 X-Forwarded-For
本文作者张开涛。为保障《亿级流量网站架构核心技术》一书内容的连续性,有些需要读者了解的内容,或者书的补充和引申内容,会通过二维码嵌入的方式引导读者阅读学习。大家可以关注作者公众号“开涛的博客”,并从菜单栏“我的新书”中查阅相关内容。
博文视点Broadview
2020/06/11
3.4K0
Nginx $remote_addr和$proxy_add_x_forwarded_for变量详解
代表客户端IP。注意,这里的客户端指的是直接请求Nginx的客户端,非间接请求的客户端。假设用户请求过程如下:
授客
2021/11/10
8.2K0
如何取得nginx做反向代理时的真实IP?
对于client -> nginx reverse proxy -> apache,
一见
2018/08/02
3.3K0
【Nginx32】Nginx学习:随机索引、真实IP处理与来源处理模块
完成了代理这个大模块的学习,我们继续其它 Nginx 中 HTTP 相关的模块学习。今天的内容都比较简单,不过最后的来源处理非常有用,可以帮我们解决外链问题。另外两个其实大家了解一下就好。
硬核项目经理
2023/10/23
8240
【Nginx32】Nginx学习:随机索引、真实IP处理与来源处理模块
Nginx能为前端开发带来什么?
Nginx那么好,我想去看看。 接连逛了两个书城后,我发现并没有Nginx相关的书籍。 这就很奇怪!
IMWeb前端团队
2019/12/04
6170
Nginx能为前端开发带来什么?
nginx获取请求真实IP
realip模块会修改remote_addr和remote_port,会用一个realip_remote_addr和realip_remote_port表示nginx原来的地址和端口
十毛
2021/07/14
3.4K0
nginx反向代理中proxy_set_header 运维笔记
Nginx proxy_set_header:即允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义: proxy_set_header Host $proxy_host; proxy_set_header Connection close; 如果启用缓存,来自之前请求的头字段“If-Modified-Since”, “If-Unmodified-Since”, “If-None-
洗尽了浮华
2018/01/23
18.8K0
nginx反向代理中proxy_set_header 运维笔记
Nginx反向代理配置
反向代理(Reverse Proxy)是一种网络服务器的部署模式,其代理请求的方向与正常的代理服务器相反,即客户端发送请求时,请求先到达反向代理服务器,然后再由反向代理服务器将请求转发到目标服务器,最后将响应发送回客户端。
灬沙师弟
2023/07/08
1.1K0
Nginx反向代理配置
Nginx配置文件详解
这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
用户8449980
2021/07/12
8760
nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
Nginx的geo模块不仅可以有限速白名单的作用,还可以做全局负载均衡,可以要根据客户端ip访问到不同的server。比如,可以将电信的用户访问定向到电信服务器,网通的用户重 定向到网通服务器”,从而实现智能DNS的作用。前面介绍过nginx域名访问的白名单配置梳理,下面对nginx的geo模块使用做一梳理(参考Geo模块-Nginx中文文档) geo指令是通过ngx_http_geo_module模块提供的。默认情况下,nginx安装时是会自动加载这个模块,除非安装时人为的手动添加--without-ht
洗尽了浮华
2018/01/23
2.3K0
nginx.conf配置文件各项详解(建议收藏查阅)
sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件 对普通应用,必须设为on 如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime
JavaEdge
2021/02/22
3.6K0
nginx.conf配置文件各项详解(建议收藏查阅)
Nginx详解-入门
第【67篇】文章,每一篇都是亲自实践后的总结,只希望能够帮助都有需要的人。"莫愁前路无知己、天下谁人不识君"
IT学习日记
2022/09/13
5500
nginx proxy_set_header设置、自定义header
允许重新定义或者添加发往后端服务器的请求头。value可以包含文本、变量或者它们的组合。 当且仅当当前配置级别中没有定义proxy_set_header指令时,会从上面的级别继承配置。 默认情况下,只有两个请求头会被重新定义:
用户5640963
2019/07/26
17.8K0
nginx之配置proxy_set_header问题梳理
将左侧匹配到的/proxy_path/开头的url全部转发到后端服务器 192.168.223.137。
小勇DW3
2019/12/20
9.4K0
nginx之配置proxy_set_header问题梳理
客户端IP获取
从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip地址,经过几个就会出现几个。
码客说
2021/02/25
4.7K0
Nginx 基于请求头的分发
通过ngx_http_geo_module模块,根据客户端ip访问到不同的server
BUG弄潮儿
2024/06/08
3160
Nginx 基于请求头的分发
Kubernetes 泛域名动态 Service 转发解决方案
集群对外暴露了一个公网IP作为流量入口(可以是 Ingress 或 Service),DNS 解析配置了一个泛域名指向该IP(比如 *.test.imroc.io),现希望根据请求中不同 Host 转发到不同的后端 Service。比如 a.test.imroc.io 的请求被转发到 my-svc-a,b.test.imroc.io 的请求转发到 my-svc-b
imroc
2018/12/22
4.9K0
Nginx流量拷贝 - 运维笔记
Nginx专门提供了ngx_http_mirror_module模块,用来实现流量拷贝。将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处:
洗尽了浮华
2020/11/24
3.7K4
相关推荐
Nginx反向代理中文字符乱码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档