如何解决用于多个React应用的nginx配置docker-compose
为了进行开发,我正在尝试在同一端口上本地运行两个React应用程序(以便它们都可以共享localStorage),其中 app1 在localhost:8000
和上运行app2 在localhost:8000/app2
上运行。但是,在下面的设置中,我遇到的问题是,所有对localhost:8000/app2/...
的请求都路由到 app1 。
有没有解决的办法?
nginx.conf
更新:将/app2
块移至/
前面(请参阅注释)。
server {
listen 8000;
server_name localhost;
location /app2 {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://app2:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://app1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
docker-compose.yml
version: "3"
services:
nginx:
image: nginx:latest
ports:
- "8000:8000"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
app1:
container_name: "app1"
image: node:12
ports:
- "3000:3000"
build:
context: "./app1"
volumes:
- "./app1:/src/app"
app2:
container_name: "app2"
image: node:12
ports:
- "3001:3001"
build:
context: "./app2"
volumes:
- "./app2:/src/app"
Dockerfile应用程序1
并且app2 Dockerfile具有EXPOSE 3001
和npm start --port 3001
FROM node:12
WORKDIR /src/app
COPY package*.json ./
RUN npm install
EXPOSE 3000
CMD ["npm","start","--port","3000"]
解决方法
我将用答案更新这个老问题:该问题与 nginx 或 docker-compose 无关。相反,我在开发模式下运行两个 create-react-app 应用程序,但我忘记在 { "homepage": "/app2" }
中设置 package.json
或将 PUBLIC_URL=/app2
设置为环境变量以从子目录提供应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。