NGINX-proxy_set_header Host

本文介绍如何通过curl命令向配置了Lua脚本的nginx后端推送消息。详细展示了nginx的upstream配置,包括使用Lua脚本进行负载均衡,并在location块中设置proxy_set_header来传递Host头部信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用curl localhost:……向nginx发送消息
 
nginx中有如下配置:
upstream backend_push {
        server 0.0.0.0;
        balancer_by_lua_file lua/upstream_push.lua;
        keepalive 100;
    }
 
location中头域配置:
 
配置
头域
proxy_set_header Host $host;
Host: localhost
proxy_set_header Host $proxy_host;
Host: backend_push
### Nginx Ingress Controller 中 `proxy_set_header` 参数配置 为了在 Kubernetes 的 Ingress-Nginx 控制器中正确配置 `proxy_set_header` 参数,需修改 ConfigMap 来确保这些参数被应用到所有的 NGINX 实例上。 #### 修改 ConfigMap 添加自定义头部信息 通过编辑名为 `ingress-nginx-controller` 的 ConfigMap 可实现此目的。具体操作命令如下: ```bash kubectl edit configmap ingress-nginx-controller -n <namespace> ``` 其中 `<namespace>` 是 Ingress-Nginx 所部署的命名空间,默认可能是 `kube-system` 或者其他指定名称的空间。 在 ConfigMap 文件中的 `data` 节点下增加或调整以下键值对来设置所需的 HTTP 头部信息[^3]: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: ingress-nginx-controller namespace: kube-base data: proxy-set-headers: | Host: $http_host X-Real-IP: $remote_addr X-Forwarded-For: $proxy_add_x_forwarded_for X-Forwarded-Proto: $scheme X-Forwarded-Uri: $request_uri ``` 上述 YAML 片段展示了如何向请求转发过程中注入额外的 HTTP 请求头。这允许后端服务能够访问原始客户端的信息而不是仅限于来自负载均衡器的数据。 对于特定需求如传递自定义的 `X-FORWARDED-FOR` 字段,在同一 ConfigMap 下还需启用一些选项以支持非标准格式的头部处理以及计算完整的前向路径列表: ```yaml enable-underscores-in-headers: "true" use-forwarded-headers: "true" forwarded-for-header: X_FORWARDED_FOR compute-full-forwarded-for: "true" proxy-real-ip-cidr: "<trusted_cidrs>" ``` 这里的 `proxy-real-ip-cidr` 应该替换为信任的真实 IP 地址范围,以便识别哪些流量源可信并从中提取真实的客户机 IP 地址。 完成以上更改保存退出后,Ingress-Nginx 将自动重新加载新的配置而无需手动重启 Pod。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值