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

时间:2020-01-19 12:56:48

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

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

我还如何在子域上进行过滤?因此只能通过db.x.io

访问

1 个答案:

答案 0 :(得分:1)

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

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


您可以尝试通过向Nginx配置添加deny 127.0.0.1来限制从本地主机的访问,但是它很可能会破坏Postgresql。因此,这是一个冒险的建议。

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

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

基于Nginx文档。