带docker的Nginx,未找到与斜杠不同的位置 总结
我创建这个简单的示例是为了纠正和检查我在另一个更复杂的项目中遇到的错误。 因此,我有一个docker compose文件,其中包含1个web服务器、2个应用程序和一个nginx conf文件 请注意,我正在使用Docker Quick Start Terminal for带docker的Nginx,未找到与斜杠不同的位置 总结,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,我创建这个简单的示例是为了纠正和检查我在另一个更复杂的项目中遇到的错误。 因此,我有一个docker compose文件,其中包含1个web服务器、2个应用程序和一个nginx conf文件 请注意,我正在使用Docker Quick Start Terminal forWindows 10 Home Edition对其进行测试,但我甚至在Ubuntu18.04上进行了测试,结果是一样的 结果 前往: 默认输出: 它能工作 这里唯一的问题是app2,因为我无法访问app2 去。 错误: 找不到
Windows 10 Home Edition
对其进行测试,但我甚至在Ubuntu18.04
上进行了测试,结果是一样的
结果
前往:
默认输出: 它能工作强> 这里唯一的问题是app2,因为我无法访问app2 去。
错误: 找不到 在此服务器上找不到请求的URL 我不明白为什么我不能做到这一点,错误在哪里 我试过的
- 切换位置顺序,使
在location/app2
之后,但没有任何更改location/
- 将
的位置更改为location/app2
,即使在这里也是相同的结果location/foo
- 更改与上一示例相关的路径,任何与
不同的操作都不起作用。(例如,location/
location/bar
location/foobar
)location/test
- 更改
以引用app2而不是app1,它可以工作,但这样我无法访问app1location/
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; } } }
这是正确的方法,使用正则表达式允许子文件夹导航,使用/app2上的完美匹配重定向上的流量:
这是正确的方法,使用正则表达式允许子文件夹导航,使用/app2上的完美匹配重定向上的流量:
我正在尝试,我会让你知道它有效!我错过了
!谢谢我正在尝试,我会让你知道它有效!我错过了http://app2
!谢谢http://app2
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:
events {} http { server{ listen 80; listen [::]:80; server_name localhost; location /app2 { proxy_pass http://app2:80; } location / { proxy_pass http://app1:80; } } }
location ~ ^/app2/(.*)$ { proxy_pass http://app2/$1; } location = /app2 { proxy_pass http://app2/; } location / { proxy_pass http://app1; }