我有一个 kubernetes 集群,它通过此信息在端口 5432 上公开 Postgresql,这就像一个魅力。我目前正在我的机器上测试它,它可以在db.x.io
上运行(x
是我的域(。但它也适用于localhost
.这似乎是公平的,因为它只在端口 5432 上对我的服务创建绑定。
如何同时筛选子域?所以它只能通过db.x.io
访问
TCP
协议在过滤方面没有太多。这是因为TCP
协议只使用IP:Port
组合,没有像HTTP那样的标头。在建立连接之前,您的子域是通过DNS
到IP
地址来解析的。
根据 Nginx 文档,您可以执行以下操作:
- 按 IP 地址限制访问
- 限制 TCP 连接数
- 限制带宽
您可以尝试通过向nginx配置添加deny 127.0.0.1
来限制来自localhost的访问,但是它很可能会破坏Postgresql。所以这是一个冒险的建议。
对于 kubernetes 入口对象,它将是:
metadata:
annotations:
nginx.org/server-snippets: |
deny 127.0.0.1;
基于 Nginx 文档。