Nginx通过路径反向代理同一服务器上的两个Web应用程序Docker容器

时间:2019-07-10 19:49:26

标签: docker nginx docker-compose

我有两个通过docker-compose在docker容器服务器上运行的Web应用程序,并且一切正常。我正在尝试使用nginx作为反向代理,以根据url模式将客户端请求转发到其他Web应用程序。 (我希望在同一域/服务器上部署两个应用程序)。 proxy_pass仅适用于nginx配置中定义的根路径,因为每个应用程序中都有定义的路由,因此任何重定向/发布形式的交互均不适用于nginx proxy_pass并显示404。

这是我当前为nginx配置设置的内容:

server {
  listen          80;
  server_name 0.0.0.0;
  location /app1/ {
     proxy_pass http://app1:8000/;
  }

  location /app2/ {
     proxy_pass http://app2:8080/;
  }
}

app1和app2在容器中运行。理想情况下,我想要这样的东西:

http://serverdomain/app1/.... ->  http://app1:8000/....
http://serverdomain/app2/.... ->  http://app2:8080/....

每个应用程序都有单独处理的逻辑和特定于应用程序的路由,例如,我也希望在app1内部,/ upload路由应转发到http://app1:8000/upload,但实际上它会将我定向到http://serverdomain/upload

我对此进行了研究,但没有一种方法有效。非常感谢您的帮助!

0 个答案:

没有答案