我不确定我尝试的方法是否可行,但我动态创建了 Docker 容器并为其分配了一个主机名,例如abcde
。每个容器监听端口 3000,并在主机上分配一个随机端口(例如 32768)。
我还有一个如下所示的 Nginx 服务器块:
resolver 127.0.0.11 valid=10s;
server {
listen 80;
server_name ~^(?<container>\w+)\.apps\.example\.com$;
location / {
proxy_pass http://$container;
}
}
Nginx 反向代理不是 Docker 容器 - 它位于主机上。
有一个docker网络,每个容器都在这个网络上。这是我手动创建的桥接网络。
目标是访问诸如的 URLhttp://abcde.apps.example.com
并将其传递给具有主机名的 docker 容器abcde
,但是这会导致坏网关错误(等到浏览器似乎超时之后)。
我试图避免动态创建/编辑 nginx conf 文件,所以我希望不需要 proxy_pass 中的端口号?