docker nginx到docker envoy(容器间通信的问题)connect() failed (111: Connection refused) while connecting to..._envoy delayed connect error: 111-程序员宅基地

当我去构建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=[想要访问的容器的名字]:[给想要访问的容器起的别名(用于当前容器内部调用)]

如此一来就解决了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangshuchunCSDN/article/details/104885140

智能推荐

qt android 开机启动,Qt for android 开机自启动、开机黑屏处理-程序员宅基地

文章浏览阅读436次。1:开机自启动1.1 创建AndroidManifest.xml项目->构建->Build Android APK->Use Gradle->Create Templates->打钩Copy the Gra...->完成1.2 添加内容1.3 编译运行即可开机运行。2:开机黑屏处理一张logo页面运行2.1在工程目录下添加启动图片 Android/res/dra..._qt for android res

金字塔压力-面积-位移图像识别 外接矩形绘制(wcy)_ifwcy-程序员宅基地

文章浏览阅读382次。金字塔压力-面积-位移图像识别 外接矩形绘制(wcy)#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2..._ifwcy

javaassist的用法_javaassist用法classvisitor-程序员宅基地

文章浏览阅读687次。package com.dasenlin.baidu;import java.io.IOException;import javassist.CannotCompileException;import javassist.ClassPool;import javassist.CtClass;import javassist.CtConstructor;import javassist.CtField;import javassist.CtMethod;import javassist.._javaassist用法classvisitor

(11)结构型模式——享元-程序员宅基地

文章浏览阅读229次。结构型模式——享元(Flyweight)目录结构型模式——享元(Flyweight)问题背景解决方案效果缺陷相关模式实现问题背景当使用大量细粒度对象,需要提高系统性能时,考虑使用享元。现在我们要为一个RPG游戏设计装备系统,首先根据需求提取出装备类的属性,可能包括:标识符、名称、描述、装备类型、初始属性取值集合、穿戴条件、属性集合、耐久上限、当前耐久、最高强化等级、强化等级……我们会发现这些...

【KakaJSON手册】01_JSON转Model_01_基本用法-程序员宅基地

文章浏览阅读388次。在iOS开发中,后台返回的数据大多是JSON格式,对应地会被网络框架层解析成Swift中的Dictionary、Array。由于数据类型的复杂、字段的繁多,直接使用Dictionary、Array会比较麻烦,比如items[0]["user"]["name"]这样的使用方式,非常不友善,而且没有智能语法提示。所以很多时候会考虑将JSON转换成Model之后再进行操作,会友善很多,比如i..._kakajson

混合目标检测模块流程_byalarmjsonpictureseparate-程序员宅基地

文章浏览阅读591次。#include <stdio.h>#include <iostream>#include "Windows.h"#include "HCNetSDK.h"using namespace std;//时间解析宏定义#define GET_YEAR(_time_) (((_time_)>>26) + 2000) #define GET_MONTH(_time_) (((_time_)>>22) & 15)#defin._byalarmjsonpictureseparate

随便推点

设备树编译与反汇编-程序员宅基地

文章浏览阅读1.3k次。转载地址:https://blog.csdn.net/fight_onlyfor_you/article/details/740590291.编译最新的内核第一步 tar -xvf .........解压内核第二步 make ARCH=arm xxxx_deconfig第三步 make ARCH=arm CROSS_COMPILE2.如何编译设备树(DTS)d...

PHP $_FILES error码对应错误信息_php $_files error 5-程序员宅基地

文章浏览阅读2.1k次。0:上传成功1:上传文件超出php配置max_upload_filesize限制2:上传文件超出html表单限制3:文件只有部分被上传 4:没有上传文件6:没有找不到临时文件夹 7:文件写入失败(可能是文件权限不足)8:php文件上传扩展file没有打开_php $_files error 5

Android应用 手势密码的实现_android手势锁频界面应用-程序员宅基地

文章浏览阅读223次。http://blog.csdn.net/u013258802/article/details/52959513_android手势锁频界面应用

java断点续传的原理_java 断点为什么接口成功之后还会走-程序员宅基地

文章浏览阅读601次。转载,学习下:2008/05/06 11:33其实原理很简单,只是在 http 请求中加一个文件的偏移量而已,当然这还需要 server 支持这个头才行。 手头上刚好有一篇这样的文档。 (一)断点续传的原理 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发_java 断点为什么接口成功之后还会走

servlet实现简单登录功能-基于测试驱动开发TDD_servlet测试登录-程序员宅基地

文章浏览阅读4.4k次,点赞8次,收藏3次。今天学习了测试驱动开发(TDD)模式,用这个方法写一个简单的前端登录功能(基于servlet&Jsp的登录功能-三层架构实现)不知道测试驱动开发,可以点这个:https://blog.csdn.net/qq_40542534/article/details/108473822编写service业务逻辑层的测试代码import org.junit.Test;public class UserServiceTest { //1、添加Junit测试 @Test pu_servlet测试登录

skynet mysql 携程_Skynet服务器框架(一) Linux下的安装和启动-程序员宅基地

文章浏览阅读249次。根据云风博客的描述,Skynet的核心功能就是解决一个问题:把一个符合规范的C模块,从动态库(so文件)中启动起来,绑定一个永不重复(即使模块退出)的数字id做为其handle。模块被称为服务(Service),服务间可以自由发送消息。每个模块可以向 Skynet 框架注册一个callback函数,用来接收发给它的消息;每个服务都是被一个个消息包驱动,当没有包到来的时候,..._skynet skynet.db.mysql 插入数据成功判定