我有一個基於nginx的配置,其中域的根應該導致一個靜態頁面(一個啓動頁面),其他任何東西都應該代理到一個內部可訪問的機器。配置看起來大致如下:Nginx解決了錯誤的路由
server {
listen 80;
location =/{
root /var/www;
}
location ~/{
location /robots.txt {
root /var/www;
}
proxy_pass http://127.0.0.1:9091;
proxy_set_header Host $host;
}
}
的問題是,如果代碼的第二塊中存在,第一個停止被考慮在內。換句話說,nginx開始在9091實例上尋找一個不存在的index.html文件。如果proxy_pass塊被評論,則第一部分生效。
就文檔而言,情況並非如此。如果我的域的根被調用,Nginx應該在第一個塊之後停止搜索,因爲它是明確的。然而,事實並非如此。
這裏應該做些什麼?我不想合併飛濺頁面代碼和其他代碼。
什麼是你與測試網址是什麼? – rednaw
對我來說看起來像一個bug,因爲文檔中的示例(http://nginx.org/en/docs/http/ngx_http_core_module.html#location)看起來非常相似,說明概述如下:_「/」請求將匹配配置一個_。但在我的情況下,總是配置B匹配。 –
閱讀本頁面會更好。 http://wiki.nginx.org/Pitfalls – risyasin