问题标签 [proxy-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4257 浏览

nginx - 具有代理协议的 kubernetes nginx 入口以损坏的标头结束

我尝试使用代理协议在 google 容器上设置 nginx 入口(nodeport),以便可以将真实 ip 转发到后端服务,但最终导致标头损坏。

如果没有代理协议,一切都会很好。根据https://blog.mythic-beasts.com/2016/05/09/proxy-protocol-nginx-broken-header/这是由于使用了协议 v2(二进制),但 nginx 只能说 v1 . 有什么建议吗?

0 投票
0 回答
419 浏览

haproxy - 可以对来自代理协议扬声器(haproxy、amazon elb 等)的进程流量进行 stunnel

我正在尝试设置一个由 haproxy 平衡的 stunnel ssl 场负载。有点像

haproxy -> 许多 stunnels -> haproxy -> apache、nginx 等

问题是将原始IP转移到最终服务器。似乎代理协议是完美的方法,但我只能弄清楚如何将它从 stunnel 发送到 haproxy

stunnel -> haproxy

当我将 haproxy 置于 tcp 模式并向 stunnel 服务器使用 send-proxy 时,我收到 ssl 错误

代理示例:

隧道配置:

似乎 stunnel 不想接收代理协议标头,只能发送它们。任何关于实现这一目标的神奇选择的想法?

干杯

0 投票
1 回答
1381 浏览

http - 从 Go HTTP 服务器获取源 IP 地址

我正在尝试在 Golang 中实现一个 HTTP 服务器,该服务器接收来自使用代理协议的 Amazon ELB 的请求。现在我想知道原始 IP 地址是什么,所以我正在考虑使用这个包。

现在,据我所知,这个包谈论原始 HTTP,但我的服务器使用路由器实现了更高级别的 HTTP 服务器。

我在他们之间翻译时遇到了麻烦。我的问题是:我如何使用这个库并且仍然使用像 gorilla/mux 这样的路由器?现在这个包没有什么特别之处,它只是在比 HTTP 更低的级别上进行通信。

例子:

0 投票
1 回答
390 浏览

nginx - 清漆 nginx 代理协议

我从本指南安装了这个https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8

使用代理协议有什么好处吗?来自 https://info.varnish-software.com/blog/five-steps-to-secure-varnish-with-hitch-and-lets-encrypt

到这个设置(我有清漆 5)

如果是这样,上面的linode链接中的设置需要什么修改?

最好的。

0 投票
0 回答
431 浏览

amazon-web-services - SSL 终止负载均衡器后面的 PostFix Dovecot

可悲的是,我整个周末都在这上面度过,我希望有人能告诉我我想做的事情是可能的还是一个好主意。

我正在尝试使用 AWS Classic Load Balancer 终止 SSL,然后将解密的 TCP 流量转发到我的 EC2 实例,该实例已安装并配置了 IMAP 和 SMTP。

我知道代理协议将有助于沿原始 IP 地址和端口转发,但是 postfix/dovecot 将如何知道连接何时是 SSL 连接?

STARTLS 怎么样,可以将其配置为与负载平衡器一起使用吗?

我的理解是负载均衡器端口可以接受 TCP 或 SSL,但不能同时配置两者。

谢谢您的帮助。

0 投票
4 回答
9892 浏览

nginx - 验证 nginx 是否在本地使用代理协议正常工作

环境

我已经在 AWS 经典负载均衡器上设置了代理协议支持,如此处所示它将流量重定向到后端nginx(使用ModSecurity配置)实例。

一切都很好,我可以从开放的互联网上访问我的网站。

现在,由于我的 nginx 配置是在 AWS User Data中完成的,我想在实例开始提供流量之前进行一些检查,这可以通过 AWS 生命周期钩子实现。

问题

在启用代理协议之前,我曾经检查我的 nginx 实例是否健康,并且 ModSecurity 通过检查403此命令的响应来工作

启用代理协议后,我不能再这样做了,因为命令失败并出现以下错误,这是根据这个链接预期的。

除了 curl 之外,我还有哪些其他选项可以以编程方式检查 nginx?也许是其他语言的东西?

0 投票
1 回答
3025 浏览

amazon-web-services - 如何在 HAProxy 配置中解析自定义 PROXY 协议 v2 标头以进行自定义路由?

如何解析 PROXY 协议版本 2 标头并使用解析的值来选择后端?

具体来说,我正在使用启用了 PROXY v2 的 VPC PrivateLink 端点从一个 AWS 账户连接到另一个账户。这包括根据文档的端点 ID 。

代理协议标头还包括端点的 ID。此信息使用自定义类型-长度-值 (TLV) 向量进行编码,如下所示。

我的目标是从账户 1 中的资源 A 连接到账户 2 中的资源 B。计划是资源 A -> PrivateLink -> NLB(启用 PROXY v2)-> HAProxy -> 资源 B。

我需要在 HAProxy 前端检测 VPC PrivateLink 端点 ID 以选择正确的后端。如何才能做到这一点?我不清楚如何在 HAProxy 配置中调用自定义解析器,或者这是否可能?是吗?如果是这样,如何做到这一点?

我不能只使用源 IP 的原因:私有 IP 空间可能在我的架构中重叠。在上面的示例中,将有多个帐户充当帐户 1,因此我必须根据端点 ID 而不是 PROXY 使用暴露的源 IP 进行目标路由。

例子

不好

这是我们目前的情况。在其中,无法区分来自不同 VPC 的具有相同私有 IP 地址空间的两个入站连接。

如果我们需要为 acctB 的 VPC 使用相同的 IP 路由连接,则无法区分。

理想的

一个理想的解决方案是将其修改为以下内容(尽管我认识到这不起作用;它只是伪配置)。


基于端点 ID 的目的地路由的任何其他替代 HAProxy 的选项也是可以接受的,但 HAProxy 似乎是显而易见的候选者。

0 投票
1 回答
9548 浏览

nginx - 代理协议和 SSL

我有以下配置:

HAProxy -> NGinx -> 后端

(HAProxy用于负载均衡,NGinx用于SSL终止)配置不可更改

我正在尝试使用代理协议将源 IP 传递给后端。在没有 SSL 的情况下工作一切正常。将 SSL 添加到等式中我要么在 SSL 握手时失败,要么我看不到让 NGinx 将代理协议传递到后端的方法。

示例配置1:

代理协议在非 ssl 连接上很好地传递,但对于 ssl 连接,ssl 握手中断

HAProxy:

NGinx:

示例配置2:

两个连接(无论是 ssl 还是非 ssl)都运行良好,但代理协议标头在这两种情况下都没有传递到后端

HAProxy:

NGinx:

知道如何创建一个配置,它既可以识别 SSL 连接上的代理协议,又可以将标头传递给后端?

0 投票
2 回答
2652 浏览

reverse-proxy - 向不支持代理协议的服务器发送代理协议

我有一个使用反向代理的 HTTP 加速解决方案。为了向服务器提供客户端 IP,我尝试在我的 HTTP 加速解决方案中添加代理协议支持。虽然由于 HTTP 加速解决方案端点本身不能成为我的服务器的网关,但我需要在服务器中添加代理协议支持或在它们前面添加 HA 代理。

目前对于代理协议状态:

接收器可以配置为支持协议的版本 1 和版本 2。识别协议版本很容易:

我的服务器主要是支持代理协议的nginx 。虽然我的http服务器很少不支持代理协议

我的问题是如果服务器不支持该协议,他们是否可以正确解析包含代理协议标头的 TCP/HTTP 有效负载?

在同一张纸条上,我想知道为什么代理协议规范不将其作为TCP/Ip 标头选项:这样,不理解该选项的服务器将忽略使其对不理解该选项的服务器完全透明不支持。而那些支持该协议的服务器将丢弃没有代理协议选项的数据包

0 投票
1 回答
2015 浏览

nginx - NGinx 和代理协议转发

我正在尝试创建一个 NGinx 配置,其中 NGinx 在传入连接上接收代理协议标头并在传出连接上传递它。本质上是将真实IP地址传播到最终目标。我正在使用以下配置:

但是,我在“some_backend”上收到的代理协议标头包含 NGinx 的 IP 地址,而不是源 IP 地址。

我使用的配置有问题吗?这完全可以做到吗?