我有一个 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 错误。
我做错了什么?
解决方案是:
location /app/ {
proxy_pass http://${APP_HOST}:3000/;
}