【问题标题】:expose tcp service (port 5432) on specific subdomain via ingress通过入口在特定子域上公开 tcp 服务(端口 5432)
【发布时间】:2020-05-05 16:33:53
【问题描述】:

我有一个 kubernetes 集群,它通过 this information 在端口 5432 上公开 Postgresql,这就像一个魅力。我目前正在我的机器上对此进行测试,它适用于db.x.iox 是我的域)。但它也适用于localhost。这似乎很公平,因为它只在端口 5432 上创建了与我的服务的绑定。

如何过滤子域?所以它只能通过db.x.io访问

【问题讨论】:

标签: nginx kubernetes tcp kubernetes-ingress nginx-ingress


【解决方案1】:

TCP 协议在过滤方面的作用并不多。这是因为TCP 协议仅使用IP:Port 组合,没有像HTTP 中的标头。在建立连接之前,您的子域由DNS 解析为IP 地址。

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


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

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

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

基于Nginx 文档。

【讨论】:

  • 我主要想通过域的访问来限制,只匹配特定的子域。所以不一定。在IP上。甚至没有想过通过 nginx conf 添加配置..
猜你喜欢
  • 2019-04-15
  • 2022-12-12
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多