用于多个 LXC 容器的 Nginx 虚拟主机

用于多个 LXC 容器的 Nginx 虚拟主机

我有以下配置:

我有 5 个正在运行 nginx 的 LXC 容器。每个容器上都有几个在 nginx 中设置的虚拟主机。这意味着对于一个容器,我有多个可通过端口 80 访问的虚拟主机。

每个容器都有一个 IP,如 10.0.3.100、10.0.3.101 等。

在主机上,我还运行着一个定义了虚拟主机的 nginx 服务器。

我想知道如何实现以下目标:将主机上的 nginx 虚拟主机映射到容器上的每个虚拟主机上。

例如:主机:d1.example.com -> 容器1:d1.example.com 主机:d2.example.com -> 容器1:d2.example.com 主机:d3.example.com -> 容器2:d3.example。 com

所有这些都应该在端口 80 上可用。

有什么办法可以实现这个设置吗?

答案1

这是一个反向代理,您正在寻找的指令是proxy_pass。的主机实例nginx将有多个server容器,例如:

server {
  listen 80;
  server_name d1.example.com;
  location / {
    proxy_pass       http://10.0.3.100;
    proxy_set_header Host              $host;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Accept-Encoding   "";
  }
}

请参阅代理模块文档WebSocket 文档(如果适用)。

相关内容