map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server{
server_name sample.com;
listen 80;
location = / {
root /root_path;
index index.html;
}
location / {
# root /root_path;
# index index.html;
# proxy_pass http://127.0.0.1:5200;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $host; # pass the host header - http://wiki.nginx.org/HttpProxyModule#proxy_pass
# proxy_http_version 1.1; # recommended with keepalive connections - http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection $connection_upgrade;
}
}
这只是“ / etc / nginx / site-enable”中的配置文件,但仍是其加载nginx默认页面。这怎么可能?如果未在服务器块内定义默认根目录,而仅在位置块内,则根目录是否默认为nginx默认根目录?
答案 0 :(得分:1)
我发现了问题和解决方案。
“应该注意,使用索引文件会导致内部重定向,并且可以在其他位置处理请求。 例如,具有以下配置:
location = / { index index.html; } location / { ... }
“ /”请求实际上将在第二个位置处理为 “ /index.html”。
我引用
就我而言,我要求在第一个位置块中加载index.html。
location = / { }
但是nginx重定向并从第二个位置块中捕获它。
location / { }
,但index.html文件在那里被注释。因此它将加载默认的nginx页面。