docker nginx到docker envoy(容器间通信的问题)connect() failed (111: Connection refused) while connecting to...

当我去构建docker nginx 与 dockers envoy的时候遇见一个问题就是 

connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.25.1, server: jx.qscode.com, request: "GET /api/search/searchCarousel HTTP/1.1", upstream: "http://127.0.0.1:6788/api/search/searchCarousel", host: "jx.qscode.com"

我的意愿是将nginx代理在次代理的envoy中代理在转发到我grpc服务上

nginx.conf:

server {
    listen       80;
    server_name  jx.qscode.com;
    root /root/SciViceFunding/front/;
    location /api/ {
        proxy_http_version 1.1;
        proxy_pass http://jxenvoy:6788;            #根据给定的envoy端口更改
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For        $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;

     }
}

nginx启动脚本:

docker run --name jxnginx -d -p 80:80 --link=jxenvoy:jxenvoy -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/conf.d:/etc/nginx/conf.d  -v /root/nginx/logs:/var/log/nginx -d docker.io/nginx

envoy启动脚本:

docker run -d -v /root/JxEnvoy:/etc/myenvoy -p 6789:6789 -p 6788:6788 --name JxService envoyproxy/envoy-alpine /user/local/bin/envoy -c etc/myenvoy/grpc-json-envoy.yaml -l debug

启动之后访问地址就发现nginx报502,我起初以为是我的配置有问题,后来仔细想了一下可能是容器内访问容器外的的网址可能是存在问题的,当然由于当时我不知道容期间通信不设置会存在问题所以当时的想法表述的可能不是非常专业。后来我查阅了一下资料发现原来容期间通信不特殊配置真的会出现问题,之后我又看了这篇微博https://blog.csdn.net/tanzhang78/article/details/78628924

恍然大悟,原来一个容器要想访问另外一个容器时需要配置 --link= 指令:

例如我写的脚本 --link=jxenvoy:jxenvoy  解释为 --link=[想要访问的容器的名字]:[给想要访问的容器起的别名(用于当前容器内部调用)]

如此一来就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值