“location /” 和 Nginx 默认服务器块值之间的区别

“location /” 和 Nginx 默认服务器块值之间的区别

如果我理解正确的话,定义的意义何在?location / { }因为这样会匹配所有潜在的 URI,并且在与具有更具体 URI 的位置的较量中“失败”?我的理由是,您可以将所有默认值直接放入服务器块中,而不必定义location / { }

因此,如果我是正确的,那么这没有任何意义:

server {
   root /www/html;
   location / {
      root /www/html;
   }

}

附言:我对 nginx 还很陌生,所以如果我可以更好地措辞以使问题更有用/更容易发现,请随时告诉我。

答案1

你是对的,你举的具体例子毫无意义。但有很多 nginx 指令在服务器级别不起作用

例如:

server {
    proxy_pass http://localhost:8080;
}

^ 这不起作用。v
这起作用。

server {
    location / {
        proxy_pass http://localhost:8080;
    }
}

服务器级别指令是默认值。有些指令仅在服务器级别起作用,有些指令仅在位置级别起作用。

这是两个根本不同的事物,只是您举的例子具有相同的后果。

相关内容