服務器
這篇文章給大家介紹nginx location中uri的截取,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
說明:
location 中的 root 和 alias
root 指令只是將搜索的根設置為 root 設定的目錄,即不會截斷 uri,而是使用原始 uri 跳轉該目錄下查找文件
aias 指令則會截斷匹配的 uri,然后使用 alias 設定的路徑加上剩余的 uri 作為子路徑進行查找
location 中的 proxy_pass 的 uri
如果 proxy_pass 的 url 不帶 uri
如果尾部是\”/\”,則會截斷匹配的uri
如果尾部不是\”/\”,則不會截斷匹配的uri
如果proxy_pass的url帶uri,則會截斷匹配的uri
examples
location中的 root
root@pts/1$ls-ld/data/web/lctest*|awk\'{print$nf}\’/data/web/lctest/data/web/lctest2/data/web/lctest3/data/web/lctest4location/lctest{root/data/web/;}location/lctest2/{root/data/web/;}location/lctest3{root/data/web;}location/lctest4/{root/data/web;}
curl 測試結果如下
備注: 瀏覽器輸入的時候最后面不添加 / , 會自動補上,但是curl 不行
root@pts/1$curlhttp://tapi.xxxx.com/lctest/helloworldroot@pts/1$curlhttp://tapi.xxxx.com/lctest2/helloworld2root@pts/1$curlhttp://tapi.xxxx.com/lctest3/3helloworldroot@pts/1$curlhttp://tapi.xxxx.com/lctest4/helloworld4
location alias
location/lctest5{alias/data/web/;}location/lctest6/{alias/data/web/;}location/lctest7{alias/data/web;}##403/data/webforbiddenlocation/lctest8/{alias/data/web;}
curl 測試結果如下
curl\’http://tapi.kaishustory.com/lctest5/\’curl\’http://tapi.kaishustory.com/lctest6/\’curl\’http://tapi.kaishustory.com/lctest7/\’結果都是/data/web/index.html的輸出root@pts/1$curl\’http://tapi.kaishustory.com/lctest8/\'<html><head><title>403forbidden</title></head><bodybgcolor=\”white\”><center><h2>403forbidden</h2></center><hr><center>nginx</center></body></html>
location proxy_pass
#——–proxy_pass配置———————location/t1/{proxy_passhttp://servers;}#正常,不截斷l(xiāng)ocation/t2/{proxy_passhttp://servers/;}#正常,截斷l(xiāng)ocation/t3{proxy_passhttp://servers;}#正常,不截斷l(xiāng)ocation/t4{proxy_passhttp://servers/;}#正常,截斷l(xiāng)ocation/t5/{proxy_passhttp://servers/test/;}#正常,截斷l(xiāng)ocation/t6/{proxy_passhttp://servers/test;}#缺\”/\”,截斷l(xiāng)ocation/t7{proxy_passhttp://servers/test/;}#含\”//\”,截斷l(xiāng)ocation/t8{proxy_passhttp://servers/test;}#正常,截斷
測試腳本
foriin$(seq8)dourl=http://tapi.xxxx.com/t$i/doc/index.htmlecho\”———–$url———–\”curlurldone
測試結果
———-http://tapi.xxxx.com/t1/doc/index.html————/t1/doc/index.html———-http://tapi.xxxx.com/t2/doc/index.html————/doc/index.html———-http://tapi.xxxx.com/t3/doc/index.html————/t3/doc/index.html———-http://tapi.xxxx.com/t4/doc/index.html————/doc/index.html———-http://tapi.xxxx.com/t5/doc/index.html————/test/doc/index.html———-http://tapi.xxxx.com/t6/doc/index.html————/testdoc/index.html———-http://tapi.xxxx.com/t7/doc/index.html————/test//doc/index.html———-http://tapi.xxxx.com/t8/doc/index.html————/test/doc/index.html
關于nginx location中uri的截取就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。