作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
概要
我创建了这个简单的示例,以更正和检查在另一个更复杂的项目中出现的错误。
所以我有一个包含1个Web服务器和2个应用程序的docker-compose文件和一个nginx conf文件。
请注意,我正在使用Docker快速入门终端针对Windows 10 Home Edition
进行测试,但即使在Ubuntu 18.04
上也进行了测试,结果是相同的。
结果
前往:http://192.168.99.100:8080/
默认输出:
It works!
Not Found
The requested URL was not found on this server.
location /app2
在location /
之后,但location /app2
的位置更改为location /foo
,即使此处结果相同。 location /
不同的任何内容均不起作用。 (例如location /bar
location /foobar
location /test
)location /
以便引用app2而不是app1,它可以工作,但是以这种方式我无法到达app1。
location / {
proxy_pass http://app2:80;
}
location /app1 {
proxy_pass http://app1:80;
}
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;
}
}
}
最佳答案
这是正确的方法,请使用正则表达式来允许子文件夹导航以及/ app2上的完美匹配来重定向http://app2上的流量:
location ~ ^/app2/(.*)$ {
proxy_pass http://app2/$1;
}
location = /app2 {
proxy_pass http://app2/;
}
location / {
proxy_pass http://app1;
}
关于docker - Nginx与docker,找不到与斜杠不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61190029/
我是一名优秀的程序员,十分优秀!