Penjelasan: Akar dan alias
arahan akar dalam
lokasi hanya tetapkan akar yang dicari kepada tetapan akar direktori, iaitu, uri tidak akan dipotong, tetapi uri asal akan digunakan untuk melompat ke direktori untuk mencari fail
arahan ais akan memotong uri yang sepadan, dan kemudian gunakan laluan yang ditetapkan oleh alias untuk menambah Cari baki uri sebagai sub-laluan
Uri proxy_pass di lokasi
Jika url proxy_pass berlaku tidak mempunyai uri
Jika ekornya "/", uri yang sepadan akan dipotong
Jika ekornya bukan "/", uri yang sepadan tidak akan dipotong
Jika url proxy_pass mengandungi uri, uri yang sepadan akan dipotong
contoh
root in location
root@pts/1 $ ls -ld /data/web/lctest*|awk '{print $nf}' /data/web/lctest /data/web/lctest2 /data/web/lctest3 /data/web/lctest4 location /lctest { root /data/web/; } location /lctest2/ { root /data/web/; } location /lctest3 { root /data/web; } location /lctest4/ { root /data/web; }
keputusan ujian curl adalah seperti berikut
Nota: Jika penyemak imbas tidak menambah / pada penghujung apabila memasukkan, ia akan ditambah secara automatik, tetapi curl Nope
root@pts/1 $ curl http://tapi.xxxx.com/lctest/ hello world root@pts/1 $ curl http://tapi.xxxx.com/lctest2/ hello world 2 root@pts/1 $ curl http://tapi.xxxx.com/lctest3/ 3 hello world root@pts/1 $ curl http://tapi.xxxx.com/lctest4/ hello world 4
alias lokasi
location /lctest5 { alias /data/web/; } location /lctest6/ { alias /data/web/; } location /lctest7 { alias /data/web; } ## 403 /data/web forbidden location /lctest8/ { alias /data/web; }
curl The test keputusan adalah seperti berikut
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>403 forbidden</title></head> <body bgcolor="white"> <center><h1>403 forbidden</h1></center> <hr><center>nginx</center> </body> </html>
lokasi proxy_pass
#--------proxy_pass配置--------------------- location /t1/ { proxy_pass http://servers; } #正常,不截断 location /t2/ { proxy_pass http://servers/; } #正常,截断 location /t3 { proxy_pass http://servers; } #正常,不截断 location /t4 { proxy_pass http://servers/; } #正常,截断 location /t5/ { proxy_pass http://servers/test/; } #正常,截断 location /t6/ { proxy_pass http://servers/test; } #缺"/",截断 location /t7 { proxy_pass http://servers/test/; } #含"//",截断 location /t8 { proxy_pass http://servers/test; } #正常,截断
Skrip ujian
for i in $(seq 8) do url=http://tapi.xxxx.com/t$i/doc/index.html echo "-----------$url-----------" curl url done
Hasil ujian
----------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
Atas ialah kandungan terperinci Bagaimana untuk memintas uri di lokasi nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!