【发布时间】:2020-04-13 14:27:58
【问题描述】:
总结
我创建了这个简单的示例来纠正和检查我在另一个更复杂的项目中遇到的错误。 所以我有一个 docker-compose 文件,其中包含 1 个 Web 服务器和 2 个应用程序以及一个 nginx conf 文件。
请注意,我正在使用Windows 10 Home Edition 的 Docker 快速启动终端对其进行测试,但我什至在 Ubuntu 18.04 上进行了测试,结果是相同的。
结果
前往:http://192.168.99.100:8080/
默认输出:
有效!
这里唯一的问题是 app2,因为我无法访问 app2。
转到http://192.168.99.100:8080/app2。
错误:
未找到
在此服务器上找不到请求的 URL。
我不明白为什么我不能这样做,错误在哪里。
我的尝试
- 切换位置顺序,所以
location /app2在location /之后,但没有任何改变 - 将
location /app2的位置更改为location /foo,即使这里结果相同。 - 更改与上一个示例相关的路径,与
location /不同的任何内容都不起作用。 (例如location /barlocation /foobarlocation /test) -
更改
location /以引用 app2 而不是 app1,它可以工作,但这样我无法访问 app1。location / { proxy_pass @987654323@; }location /app1 { proxy_pass @987654324@; }
代码
docker-compose.yml
version: "3.7"
services:
web:
image: nginx:alpine
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- 8080:80
networks:
- app1_net
- app2_net
app1:
image: httpd:latest
networks:
- app1_net
app2:
image: httpd:latest
networks:
- app2_net
networks:
app1_net:
app2_net:
nginx.conf
events {}
http {
server{
listen 80;
listen [::]:80;
server_name localhost;
location /app2 {
proxy_pass http://app2:80;
}
location / {
proxy_pass http://app1:80;
}
}
}
【问题讨论】:
标签: docker nginx docker-compose