在80端口上的主机和docker容器中运行apache

时间:2015-11-16 11:59:01

标签: apache docker reverse-proxy portforwarding

我需要使用docker设置自动服务器设置。现在服务器机器应该支持docker或普通设置。所以我需要在80端口上的docker容器和主机上设置apache web服务器。像

Host Machine  : application1.serverhost.com
Docker Machine  : application2.serverdocker.com

但是Docker不会使用80端口,因为它已经在主机apache上绑定了。虽然我正在考虑在主机上使用反向代理,但需要像

这样的apache
Proxy Setting -> 172.17.0.2:8080 

在浏览器上连接到80端口上的代理application2.serverdocker.com。 IP - > 172.17.0.2是我想从docker inspect获取的docker容器IP。

但是如果有任何其他方式来处理这个在docker本身,我可以忽略主机上的反向代理。并且无需附加端口即可从浏览器中调用application1.serverhost.comapplication2.serverdocker.com

编辑:使用反向代理的一个大问题是,每当我需要在同一台服务器上添加另一个docker时,我也需要为该新IP添加代理,因为它还会在8081之外的其他端口上运行docker apache而不是Host端口: 80和第一个码头工人的港口:8080。换句话说,在很多docker实例的情况下,很多反向代理设置和端口。

1 个答案:

答案 0 :(得分:1)

如果您使用reverse proxy, (like an NGiNX),则表示您的Apache服务器必须在不同于80的端口上运行。

只有您的NGiNX会在端口80上运行(例如直接在主机上),并且会重定向到localhost_apache1:xxx172.17.0.2_apache2:yyy

从用户的角度来看,两个Apache都会被视为“好像”它们自己在端口80上运行。