[英]Looking for Envoy example for "proxy_set_header" in reverse proxy
我正在将 Nginx 迁移到 Envoy,但我不知道如何替换这些设置:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header 主机 $http_host;
我已经阅读了 Envoy 关于IT Transprency的文档,但我仍然无法弄清楚如何配置它。 当我尝试测试上述链接中包含的示例时,出现错误:
无效值无效类型 URL,未知类型:envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport 类型 Any)
如果有人可以与我分享一个真实的例子来支持 Envoy 中的以上 3 个 proxy_set_header 等效项,那将不胜感激。
从您的 NGINX 片段来看,您可能希望 Envoy 将 XFF 标头添加到向上游服务器发出的请求中?
XFF 标头(即像X-Forwarded-For
这样的标头)与使用 PROXY 协议( ProxyProtocolUpstreamTransport
这样做)有所不同。 PROXY 协议用于在第 4 层 (TCP) 上获得 IP 透明度。 XFF 用于 HTTP 的第 7 层。
您需要的文档在这里: https : //www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/other_features/ip_transparency#arch-overview-ip-transparency-original-src-http
下面是一个例子。 xff_num_trusted_hops: 0
告诉 Envoy 丢弃它收到的任何 XFF 标头(如果我们是边缘代理,我们绝对不信任来自 Internet 的 XFF 标头)。 use_remote_address: true
告诉 Envoy 为上游请求生成新的 XFF 标头。
- filter_chain_match:
server_names: "foo.example.com"
filters:
- name: envoy.filters.network.http_connection_manager
config:
stat_prefix: ingress_http
codec_type: AUTO
use_remote_address: true
xff_num_trusted_hops: 0
route_config:
name: local_route
virtual_hosts:
- name: vh_foo_example
domains: ["*"]
routes:
- match: { prefix: "/" }
route: {
timeout: 60s,
cluster: srv_upstream
}
http_filters:
- name: envoy.router
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.