我在vps中分别在两个docker容器中运行两个网站。例如www.myblog.com和www.mybusiness.com
如何在vps中实现virtualhost,以便两个网站都可以使用端口80。
我在其他地方问了这个问题,建议您看看:https : //github.com/hipache/hipache和https://www.tutum.co/ 他们看起来有些弯曲。我试图找到是否有一个简单的方法来实现这一目标。谢谢!
另外,忘了提一下我的vps是Ubuntu 14.04机器。
看一下jwilder / nginx-proxy项目。
使用docker-gen的Docker容器的自动nginx代理
这是代理Docker容器的最简单方法。您无需在每次重新启动容器或启动新容器时都编辑代理配置文件。docker- gen会自动为您完成所有操作,该生成器会为nginx生成反向代理配置,并在启动和停止容器时重新加载nginx。
用法 要运行它: $ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock \ jwilder/nginx-proxy 然后使用env var VIRTUAL_HOST = subdomain.youdomain.com启动要代理的任何容器 $ docker run -e VIRTUAL_HOST=foo.bar.com ... 如果您的DNS设置为将foo.bar.com转发到运行nginx-proxy的主机,则该请求将被路由到设置了VIRTUAL_HOST env var的容器。 多个端口 如果您的容器公开了多个端口,则nginx-proxy将默认使用在端口80上运行的服务。如果需要指定其他端口,则可以将VIRTUAL_PORT env var设置为选择其他端口。如果您的容器仅公开一个端口,并且设置了VIRTUAL_HOST env var,则将选择该端口。
要运行它:
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock \ jwilder/nginx-proxy
然后使用env var VIRTUAL_HOST = subdomain.youdomain.com启动要代理的任何容器
$ docker run -e VIRTUAL_HOST=foo.bar.com ...
如果您的DNS设置为将foo.bar.com转发到运行nginx-proxy的主机,则该请求将被路由到设置了VIRTUAL_HOST env var的容器。
如果您的容器公开了多个端口,则nginx-proxy将默认使用在端口80上运行的服务。如果需要指定其他端口,则可以将VIRTUAL_PORT env var设置为选择其他端口。如果您的容器仅公开一个端口,并且设置了VIRTUAL_HOST env var,则将选择该端口。