繁体   English   中英

在反向代理中寻找“proxy_set_header”的 Envoy 示例

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM