具有多个 Docker 容器应用程序的 Nginx 代理服务器

问题描述 投票:0回答:1

我有一个 Alfresco Share 应用程序和多个已连接的自定义应用程序。现在我必须将它们全部连接到

nginx
代理服务器,以便它们全部在端口 80 上运行。我的自定义应用程序遇到 404 错误(共享运行正常)。所有应用程序都是 docker 容器。

我的 Dockerfile(用于 nginx):

FROM nginx:latest

ARG SHARE_HOST 
ARG APP_HOST

COPY default.conf.template /etc/nginx/conf.d/default.conf.template

RUN envsubst '${SHARE_HOST}, ${APP_HOST}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

我的default.conf.template

server {
  listen 80 default_server;
  server_name example.com;

  location /app {
    proxy_pass http://${APP_HOST}:3000;
  }

  location / {
    proxy_pass http://${SHARE_HOST}:8080;
  }

}

我的docker构建命令:

docker build --build-arg SHARE_HOST=alfresco-share --build-arg APP_HOST=app_container -t documan-nginx-redirect .

alfresco-share
app_container
是正在运行的容器的名称

所有容器都运行良好,并且都位于同一网络中。 Nginx 容器也在同一网络中。

共享应用程序加载正常(URL 是 localhost/share/page/admin/dashboard 按预期),但是当我在 URL 中键入 localhost/app 时,它会抛出 404 错误。

我做错了什么?

docker nginx alfresco alfresco-share
1个回答
0
投票

解决方案是:

location /app/ {
  proxy_pass http://${APP_HOST}:3000/;
}
© www.soinside.com 2019 - 2024. All rights reserved.