docker反向代理DNS /networking问题
我会尽力解释和绘制出来
我想实现的是:
对不起,蹩脚的油漆图。 现在,如果我从10.10.10.0networking中find它的话,它是完美的。 问题是DNS将jenkins.network.comparsing到10.10.10.0networking。 我想通过代理回去,因为它有SSL端接到sonarqube服务器。 有没有一个好的方法来完成这项工作,以保持代理的服务? 我是否需要在Dockernetworking上创build第二个DNS服务器? 这是否可能与领事做,使外部和内部的服务指向相同的域名?
编辑:做这样的事情会工作,因为一切都通过代理。 所以当jenkins打声纳的时候,它认为它的ip真的是10.10.10.51,它可以通过那里击中它。
我需要做的是: 我需要它离开代理,然后通过代理回来。 IE:
172.16.10.2 —- 172.16.10.1 —– 10.10.10.50 —–代理然后接pipe路由到正确的位置(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
都将parsing为10.10.10.50
。 但是在jenkins.network.com
networking里面,你需要jenkins.network.com
来parsing容器的IP。
所以如果以上都是正确的,那么下面是最简单的解决scheme
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
root@be6492f18851:/# telnet jenkins.network.com 8080 Trying 172.23.0.3... Connected to jenkins.network.com. Escape character is '^]'. Connection closed by foreign host.
你可以从jenkins和声纳容器做到这一点,并获得相同的结果
编辑-1
如果您希望DNS通过代理,则可以将别名更改为该networking
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相反
下面是一个nginxconfiguration示例
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; }
希望能帮助到你