Nginx代理覆盖默认的HTML文件
我正在尝试用docker compose设置一个代理,它工作得很好 不过 我正在托管代理a“/”端点,它似乎覆盖了nginx根文件夹中的默认html文件。代理服务器只有一个url为“/login”的端点 如何查看我的index.html?我是否可以覆盖代理,即如果存在某个文件,则显示该文件 希望你能理解 Nginx conf文件:Nginx代理覆盖默认的HTML文件,nginx,proxy,Nginx,Proxy,我正在尝试用docker compose设置一个代理,它工作得很好 不过 我正在托管代理a“/”端点,它似乎覆盖了nginx根文件夹中的默认html文件。代理服务器只有一个url为“/login”的端点 如何查看我的index.html?我是否可以覆盖代理,即如果存在某个文件,则显示该文件 希望你能理解 Nginx conf文件: server { listen 80; server_name localhost; index index.ht
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:12中的“limit_except”块中包含URI部分。我在配置文件中这样做:
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/;
}
}
多亏了Richard Smith,尝试一下。它似乎不起作用,请检查我的编辑答案,如果你知道什么是错的,那就太好了。从
代理通行证语句中删除尾随的/
。