【问题标题】:Is it possible to serve two or more static sites from one docker container?是否可以从一个 docker 容器提供两个或多个静态站点?
【发布时间】:2021-05-07 07:21:49
【问题描述】:

例如:我有 domain1.com - 静态 html 和 domain2.com 静态 html。

我可以将两者放在一个从 Nginx 映像创建的容器中,而不是为每个容器启动不同的相似容器吗?

感谢您的帮助!我是码头工人的新手。只是想弄清楚如何正确使用它。

【问题讨论】:

  • 我已经使用反向代理运行了 docker 网络。并且只能为一个容器映射一个主机。但是如果我想在一个 docker 容器中运行两个站点该怎么办。

标签: docker nginx docker-compose


【解决方案1】:

是的, 你需要配置 Nginx 来处理虚拟主机域。

一个教程(如何在 Nginx 上设置虚拟主机): https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

例如

docker run -d -i -t \
  -p 8080:80 \
  -v ./domain1.conf:/etc/nginx/sites-enabled/domain1.conf \
  -v ./domain2.conf:/etc/nginx/sites-enabled/domain2.conf \
  -v ./www:/var/www \
  nginx

domain1.conf

server {
  listen 80;
  server_name  domain1.com www.domain1.com;
  index index.html;
  root /var/www/static1
}

domain2.conf

server {
  listen 80;
  server_name  domain2.com www.domain2.com;
  index index.html;
  root /var/www/static2
}

【讨论】:

  • 如何将此映射到反向代理?我想在我的服务器上拥有不同环境的不同 docker 容器。例如:一个带有node环境的容器,一个带有使用Nginx的静态站点,另一个带有基于Wordpress的站点
  • 目前我有反向代理网络容器。当我启动新容器时,我只是通过变量传递虚拟主机。然后启动 docker-compose 将其暴露给适当的端口 443 (SSL)。和反向代理容器做的东西 - 颁发证书。然后在 dns config 中添加域 A 记录映射到我的 ip。
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 2017-11-25
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
相关资源
最近更新 更多