【发布时间】:2020-02-14 09:08:17
【问题描述】:
我正在尝试通过ingress-nginx tcp-services 公开一个 RabbitMQ ssl 端口,如下所示:
$ cat rabbit-expose-amqps.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
5671: "dev/rabbitmq-rabbitmq-ha:5671"
(RabbitMQ 服务已经在此端口上侦听)但是任何执行openssl s_client -connect my-external-host:5671 的尝试都会超时,当然,任何使用 amqplib 连接到amqps://my-extrenal-host:5671 的尝试也会超时。不过,管理 UI 确实可以工作,所以我知道外部 IP 是正确的。
似乎我的 ingress-nginx pod 中的 nginx.conf 已更新,但有些奇怪(我认为):它确实在端口 5671 上配置了一个侦听器,但上游仍然用 0.0.0.1:1234 说“占位符”地址。我什至回收了 pod,以防万一,仍然是相同的 conf 文件:
stream {
upstream upstream_balancer {
server 0.0.0.1:1234; # placeholder
balancer_by_lua_block {
tcp_udp_balancer.balance()
}
}
...
# TCP services
server {
preread_by_lua_block {
ngx.var.proxy_upstream_name="tcp-dev-rabbitmq-rabbitmq-ha-5671";
}
listen 5671;
proxy_timeout 600s;
proxy_pass upstream_balancer;
}
}
如何正确应用 tcp 服务?
【问题讨论】:
标签: nginx-ingress