通过 Nginx 基于路径路由到同一台服务器上的不同容器

tru*_*hit 6 reverse-proxy nginx docker

我的服务器上有 3 个不同的 docker 容器在端口上运行 -

  1. 容器 1 - 本地主机:5000
  2. 容器 2 - 本地主机:8000
  3. 容器 3 - 本地主机:9000

我想配置我的服务器,以便每当请求命中以下路径时,它应该被重定向到相关容器 -

  1. 本地主机/容器 1 -> 本地主机:5000
  2. 本地主机/容器 2 -> 本地主机:8000
  3. 本地主机/容器 3 -> 本地主机:9000

我已经完成将 /container1 重定向到 localhost:5000。但是,它不提供容器 1 中托管的任何静态文件

我的 nginx.conf 文件 -


#user  nobody;
worker_processes  1;

http {

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /container1/ {
            proxy_pass http://127.0.0.1:5000;
        }

        #error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

关于如何为每个容器提供静态文件的任何建议?

当我在浏览器中打开 localhost/container1 时,它会在 'localhost/' 路由上获取静态文件,而它应该去 'localhost/container1/'

对此的任何帮助将不胜感激。