通过入口在特定子域上公开 TCP 服务(端口 5432)



我有一个 kubernetes 集群,它通过此信息在端口 5432 上公开 Postgresql,这就像一个魅力。我目前正在我的机器上测试它,它可以在db.x.io上运行(x是我的域(。但它也适用于localhost.这似乎是公平的,因为它只在端口 5432 上对我的服务创建绑定。

如何同时筛选子域?所以它只能通过db.x.io访问

TCP协议在过滤方面没有太多。这是因为TCP协议只使用IP:Port组合,没有像HTTP那样的标头。在建立连接之前,您的子域是通过DNSIP地址来解析的。

根据 Nginx 文档,您可以执行以下操作:

  • 按 IP 地址限制访问
  • 限制 TCP 连接数
  • 限制带宽

您可以尝试通过向nginx配置添加deny 127.0.0.1来限制来自localhost的访问,但是它很可能会破坏Postgresql。所以这是一个冒险的建议。

对于 kubernetes 入口对象,它将是:

metadata:
annotations:
nginx.org/server-snippets: |
deny 127.0.0.1;

基于 Nginx 文档。

最新更新