consul 用如下命令启动:
sudo docker run -d --name=consul -p 8500:8500 -p 8600:8600/udp -v /home/alex/code/consul-data:/consul/data consul:1.15.4
nginx.conf 配置如下:
stream {
resolver 192.168.1.125:8600 ipv6=off valid=30s;
upstream tcp_servers {
server my-service.service.consul:6789;
}
server {
listen 12345;
proxy_pass tcp_servers;
proxy_connect_timeout 1s;
}
}
后端的 TCP 服务器已经成功注册到 consul ,执行 dig @192.168.1.125 -p 8600 my-service.service.consul 是可以正确解析域名的,但是配置在 nginx 里面,就提示:
nginx: [emerg] host not found in upstream "my-service.service.consul:6789" in /etc/nginx/nginx.conf:73
nginx: configuration file /etc/nginx/nginx.conf test failed
搞了一上午,怎么改配置都不行