泊坞窗反向代理DNS /网络问题

问题描述:

我会尽力解释并绘制了这一点泊坞窗反向代理DNS /网络问题

我想达到的目标:

Diagram

很抱歉的蹩脚的油漆图。现在,如果我从10.10.10.0网络中找到它,它会很好地工作。问题是DNS将jenkins.network.com解析为10.10.10.0网络。我想通过代理回去,因为它有SSL终止到sonarqube服务器。有没有一种很好的方法来完成这项工作,以保持代理的服务?我是否需要创建第二台DNS服务器,并在其上安装Docker网络?这可能与领事有关,使外部和内部服务指向相同的域名?

编辑: 做这样的事情会有效,因为一切都通过代理。所以当jenkins击中声纳时,它认为它的ip真的是10.10.10.51,它可以在那里击中它。 enter image description here

我需要它做的事: enter image description here 我需要走出去的代理,然后通过代理在回来。 IE:

172.16.10.2 172.16.10.1 ---- ----- ----- 10.10.10.50然后代理服务器接管路由到适当的位置(172.16.10.3:8080或东西)

+0

所以你能用挖命令解释这个问题? –

+0

@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

+0

所以,如果我正确的问题,你想在jenkin服务器'jenkins.network.com'解析为'172.16.10.1'?如果是,那么发布你的'docker-compose'文件,如果使用任何 –

因为你没有张贴你的作文。我做了很少的假设。撰写假设低于

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 
+0

是的。抱歉。我没有忘记,这个周末很忙。我正在考虑这样的事情,但问题是我仍然需要它通过代理。其中一个原因就是如此终止。另一个是设置正确的端口。这可能吗?我一直在寻找码头群和服务发现,但还没有确定这是否会解决我的问题 – Matt

+0

@Matt,请参阅编辑。这只是一个更新别名到代理的问题 –

+0

这就是我想我必须做的那种。我会试一试,看看它是否适合我的使用并让你知道。谢谢 – Matt

如何使用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; 
} 

希望它有助于

+0

这个nginx配置应该放在/ etc/nginx/site-enable diretory –

+0

这就是我目前正在做的事情,唯一的事情是,当从服务通信到服务时,它没有到内部代理的路由。所以是的,反向代理可以工作,但是因为DNS解析为外部网络地址,所以无法重新进入。请参阅上面的注释以获取进一步解释。再次感谢。 – Matt