【发布时间】:2020-03-19 11:35:03
【问题描述】:
我正在尝试使用 docker-compose 设置代理,效果很好。
但是。
我将代理托管在一个“/”端点上,这似乎覆盖了我在 nginx 根文件夹中的默认 html 文件。代理服务器只有一个 url 为“/login”的端点
如何查看我的 index.html?我可以覆盖代理,如果某个文件存在,然后显示该文件吗?
希望你能理解
Nginx 配置文件:
server {
listen 80;
server_name localhost;
index index.html;
root /var/www/;
location / {
proxy_pass http://flask-app:5000/;
proxy_set_header Host "localhost";
}
}
PS:如果我删除代理,我可以看到 HTML 文件就好了。
编辑
我试过了:
server {
listen 80;
server_name localhost;
index index.html;
root /var/www/;
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_pass http://flask-app:5000/;
}
}
这是我设想的实现方式吗?
我在启动时收到此错误:
“proxy_pass”不能在正则表达式给出的位置、命名位置、“if”语句或/etc/nginx/conf.d/default.conf:12中的“limit_except”块中包含URI部分
nginx | nginx:[emerg]“proxy_pass”不能在正则表达式给出的位置、命名位置、“if”语句或/etc/nginx/conf.d/default.conf中的“limit_except”块中包含URI部分:12
【问题讨论】:
-
试试this answer。
-
它似乎不起作用,请检查我的编辑答案,如果你知道什么是错的,那就太好了
-
从
proxy_pass语句中删除结尾的/。