web - 我的网站在 docker 容器中运行,如何实现虚拟主机?

标签 web docker virtualhost

我在一个 vps 中分别在两个 docker 容器中运行两个网站。 例如www.myblog.com 和 www.mybusiness.com

如何在vps中实现virtualhost,让两个网站都可以使用80端口。

我在其他地方问过这个问题,并被建议看一下:https://github.com/hipache/hipachehttps://www.tutum.co/ 它们看起来有点弯曲。我正在尝试寻找是否有一种直接的方法来实现这一目标。谢谢!

另外,忘了说我的vps是一个Ubuntu 14.04的盒子。

最佳答案

看看jwilder/nginx-proxy项目。

Automated nginx proxy for Docker containers using docker-gen

这是代理 docker 容器的最简单方法。每次重新启动容器或启动新容器时,您都不需要编辑代理配置文件。 docker-gen 为您自动完成这一切它为 nginx 生成反向代理配置,并在容器启动和停止时重新加载 nginx。

Usage

To run it:

$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock \
jwilder/nginx-proxy

Then start any containers you want proxied with an env var VIRTUAL_HOST=subdomain.youdomain.com

$ docker run -e VIRTUAL_HOST=foo.bar.com  ...

Provided your DNS is setup to forward foo.bar.com to the a host running nginx-proxy, the request will be routed to a container with the VIRTUAL_HOST env var set.

Multiple Ports

If your container exposes multiple ports, nginx-proxy will default to the service running on port 80. If you need to specify a different port, you can set a VIRTUAL_PORT env var to select a different one. If your container only exposes one port and it has a VIRTUAL_HOST env var set, that port will be selected.

关于web - 我的网站在 docker 容器中运行,如何实现虚拟主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519215/

相关文章:

php - 覆盖每个虚拟主机的 php_value

apache2 - VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost

apache2 - Apache - 虚拟主机 - 只工作一个

javascript - 为什么我的投资组合网站需要很长时间才能加载?

java - 从 Web ui 启动/停止 Java 应用程序

bash - Docker ubuntu 镜像 - bash : man: command not found

docker - 有没有更简单的方法来使用 Docker 图像在多平台上测试 PHP 源代码?

javascript - 具有公共(public)属性的 Typescript 类会生成空的 JavaScript 对象

asp.net - 如何解决asp网站初始加载速度慢的问题?

java - 如何防止Dockerfile中的脚本退出?