“location /”和 Nginx 預設伺服器區塊值之間的差異

“location /”和 Nginx 預設伺服器區塊值之間的差異

定義的意義location / { }何在,如果我理解正確的話,這將匹配所有潛在的 URI,並「輸掉」與具有更具體 URI 的位置的任何戰鬥?我的推理是您可以將所有預設值直接放入伺服器區塊中,而不是定義location / { }.

因此,如果我是正確的,那麼這沒有任何意義:

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

}

PS:我對 nginx 很陌生,所以請隨時告訴我是否可以更好地表達問題以使問題更有用/更容易發現。

答案1

你是對的,你的具體例子沒有任何意義。但是有很多 nginx 指令在伺服器層級不起作用

例如:

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

^ 這不起作用。
v 確實如此。

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

伺服器級指令是預設值。有些指令僅在伺服器層級起作用,有些指令僅在位置層級起作用。

這是兩個根本不同的事情,只是你的例子有相同的結果。

相關內容