泊坞窗反向代理DNS /网络问题
我会尽力解释并绘制了这一点泊坞窗反向代理DNS /网络问题
我想达到的目标:
很抱歉的蹩脚的油漆图。现在,如果我从10.10.10.0网络中找到它,它会很好地工作。问题是DNS将jenkins.network.com解析为10.10.10.0网络。我想通过代理回去,因为它有SSL终止到sonarqube服务器。有没有一种很好的方法来完成这项工作,以保持代理的服务?我是否需要创建第二台DNS服务器,并在其上安装Docker网络?这可能与领事有关,使外部和内部服务指向相同的域名?
编辑: 做这样的事情会有效,因为一切都通过代理。所以当jenkins击中声纳时,它认为它的ip真的是10.10.10.51,它可以在那里击中它。
我需要它做的事: 我需要走出去的代理,然后通过代理在回来。 IE:
172.16.10.2 172.16.10.1 ---- ----- ----- 10.10.10.50然后代理服务器接管路由到适当的位置(172.16.10.3:8080或东西)
因为你没有张贴你的作文。我做了很少的假设。撰写假设低于
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
jenkins:
image: jenkins
sonar:
image: sonarqube
而且所有这些运行在10.10.10.50
。现在,如果您将DNS设置为10.10.10.20
,则jenkins.network.com
将解析为10.10.10.50
。但是在码头网络中,您需要jenkins.network.com
解析为容器的IP。
所以,如果上述所有是正确的,那么下面是最简单的解决方案
version: '3'
service:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
jenkins:
image: jenkins
networks:
default:
aliases:
- jenkins.network.com
sonar:
image: sonar
networks:
default:
aliases:
- sonar.network.com
在nginx的图像,我可以达到jenkins.network.com
[email protected]:/# telnet jenkins.network.com 8080
Trying 172.23.0.3...
Connected to jenkins.network.com.
Escape character is '^]'.
Connection closed by foreign host.
而且你能做到这一点从两个詹金斯和声纳容器和得到相同的结果
编辑-1
如果你希望DNS要经过代理,您可以更改别名到该网络
version: '3'
service:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
networks:
default:
aliases:
- sonar.network.com
- jenkins.network.com
jenkins:
image: jenkins
sonar:
image: sonar
如何使用nginx做反向代理?
如果我没有误会,你要听443端口
和反向低于172.16.10.1
是Nginx上配置例如
server {
listen 443;
root /data/up1;
location/{
proxy_pass 172.16.10.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
希望它有助于
这个nginx配置应该放在/ etc/nginx/site-enable diretory –
这就是我目前正在做的事情,唯一的事情是,当从服务通信到服务时,它没有到内部代理的路由。所以是的,反向代理可以工作,但是因为DNS解析为外部网络地址,所以无法重新进入。请参阅上面的注释以获取进一步解释。再次感谢。 – Matt
所以你能用挖命令解释这个问题? –
@TarunLalwani让我试着扩展它。基本上它的工作原理应该如此。我可以通过代理访问服务器。问题在内部码头网络中。解析sonarqube.mynetwork.com时,解析为10.10.10.50。 Docker容器使用主机DNS来获取它。所以詹金斯在10.10.10.50获得了sonarqube地址,但是因为它只关闭了172.16.10.1的代理服务器,所以它试图在10.10.10.50处找到代理服务器,而不是172.16.10.1地址,并且你找不到路由。这有帮助吗? – Matt
所以,如果我正确的问题,你想在jenkin服务器'jenkins.network.com'解析为'172.16.10.1'?如果是,那么发布你的'docker-compose'文件,如果使用任何 –