设置root后,nginx config仍在提供默认主页

时间:2018-12-05 05:22:25

标签: nginx nginx-config

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默认根目录?

1 个答案:

答案 0 :(得分:1)

我发现了问题和解决方案。

  
    

“应该注意,使用索引文件会导致内部重定向,并且可以在其他位置处理请求。     例如,具有以下配置:

  
location = / {
    index index.html;
}

location / {
    ...
}
     

“ /”请求实际上将在第二个位置处理为   “ /index.html”。

我引用

> http://nginx.org/en/docs/http/ngx_http_index_module.html

就我而言,我要求在第一个位置块中加载index.html。

location = / { }

但是nginx重定向并从第二个位置块中捕获它。

location / { } 

,但index.html文件在那里被注释。因此它将加载默认的nginx页面。