Rumah > Artikel > Operasi dan penyelenggaraan > Kaedah lompat padanan lokasi dan tulis semula dalam Nginx
Nginx: menyokong penulisan semula URL dan jika pertimbangan syarat melalui modul ngx_http_rewrite_module, tetapi tidak menyokong yang lain
Lompat: lompat dari satu lokasi ke lokasi lain, gelung boleh dilaksanakan sehingga 10 kali, selepas itu nginx akan mengembalikan ralat 500
Sokongan PCRE: padanan peraturan sintaks ungkapan biasa serasi perl
Tulis semula arahan set modul: cipta pembolehubah baharu dan tetapkan nilai kepada mereka
①Laksanakan arahan penulis semula dalam blok pelayan
②Pemadanan lokasi Pelaksanaan
Untuk membolehkan enjin carian mencari kandungan tapak web dan memberikan pengalaman pengguna yang lebih baik, syarikat akan menyamar alamat URL dinamik sebagai alamat statik untuk menyediakan perkhidmatan
Sesetengah pelarasan perniagaan pada pelayan, seperti URL berdasarkan khas pembolehubah, direktori dan maklumat pelanggan Pelarasan, dsb.
4. Sintaks dan penerangan teg flg
Tatabahasa tulis semula
regex: mewakili peraturan padanan biasa
bendera: mewakili tanda bendera yang disokong oleh penulisan semula
keterangan tanda bendera:
terakhir: artikel ini Selepas pemadanan peraturan selesai, teruskan padankan peraturan URI lokasi baharu, biasanya digunakan dalam pelayan dan jika
lokasi boleh dibahagikan secara kasar kepada tiga kategori berikut:
Kedua, padanan biasa mengikut susunan dalam fail~ atau ~*
Kemudian padanan awalan tanpa sebarang pengubahsuaian, iaitu padanan umum
akhirnya diserahkan kepada / padanan am, dengan keutamaan terendah
4. Contoh
= ialah padanan tepat / dan tiada rentetan boleh diletakkan selepas nama hos Contohnya, apabila mengakses / dan /xcf, / akan sepadan, tetapi /xcf tidak akan sepadan dengan
, tetapi jika ia diikuti dengan ungkapan biasa, ia akan dipadankan dengan rentetan terpanjang dahulu (paling lama padan)
lokasi /documents/ {}
dipadankan Selepas alamat bermula dengan /documents/, anda perlu terus mencari lokasi lain
lokasi /documents/ abc {}
padan dengan mana-mana alamat bermula dengan /documents/abc Selepas padan, masih Untuk meneruskan mencari lokasi lain
Hanya apabila ungkapan biasa di belakang lokasi lain tidak sepadan, yang ini akan. digunakan
lokasi ^~ /images/ {}
Padankan mana-mana alamat yang bermula dengan /images/ Selepas memadankan, berhenti mencari peraturan biasa dan gunakan
lokasi ~ ini * .(gif|jpg|jpeg)$ {}
Padankan semua permintaan yang berakhir dengan gif, jpg, jpeg
Walau bagaimanapun, semua imej di bawah permintaan /images/ akan diproses mengikut lokasi ^~ /images/, kerana ^~ mempunyai keutamaan yang lebih tinggi, jadi ia tiba Peraturan biasa ini
lokasi /images/abc {}
Watak terpanjang sepadan dengan /images/abc, yang mempunyai terendah keutamaan. Jika anda terus mencari lokasi lain, anda akan mendapati ^~ dan~ Terdapat
lokasi ~ /images/abc {}
padanan bermula dengan /images/abc, keutamaan adalah kedua, hanya lokasi ^~ /images akan diguna pakai
lokasi /images/abc/1.html {}
sepadan dengan fail /images/abc/1.html Jika dibandingkan dengan ~ /images/abc/1.html biasa, keutamaan biasa lebih tinggi
ringkasan keutamaan:
(lokasi = laluan penuh) > (lokasi ,* jujukan biasa) > (laluan permulaan separa lokasi) > ; (lokasi /)
5 Definisi peraturan yang sepadan
①Peraturan pertama yang diperlukan:
secara langsung. sepadan dengan akar tapak web adalah lebih kerap untuk mengakses halaman utama laman web melalui nama domain Penggunaan Ini akan mempercepatkan pemprosesan, seperti laman web rasmi
Ia boleh menjadi halaman utama statik, atau ia boleh dimajukan terus ke bahagian belakang "pelayan aplikasi" - PHP, Apache (pelayan aplikasi ditunjukkan dalam gambar di bawah)
location / { root html; index index.html index.html; }
②Peraturan kedua yang diperlukan:
Memproses permintaan fail statik, iaitu kekuatan nginx sebagai pelayan http (①keupayaan pemprosesan permintaan statik②keupayaan pemprosesan serentak tinggi③penggunaan sumber yang rendah)
Terdapat dua mod konfigurasi, padanan direktori atau padanan akhiran, pilih satu atau gunakannya bersama
location ^~ /static/ { root /webroot/static/; } location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/ ; }
③Peraturan ketiga yang diperlukan:
ialah peraturan umum, seperti menggunakan Untuk memajukan permintaan dinamik dengan . php dan .jsp akhiran pada pelayan aplikasi bahagian belakang
Permintaan fail bukan statik ialah permintaan dinamik secara lalai (proksi lompat/terbalik)
upstream tomcat_server { 192.168.126.12:80 192.168.126.23:80 }
location / { proxy_ pass http://tomcat_server;
1. Bandingkan penulisan semula dan lokasi
Mata yang sama: kedua-duanya melaksanakan lompatan
Perbezaan: tulis semula menukar laluan untuk mendapatkan sumber dalam nama domain yang sama
lokasi adalah untuk mengawal akses atau membalikkan proksi kepada kelas laluan, dan juga boleh proxy_pass ke mesin lain
2 penulisan semula akan ditulis dalam lokasi, perintah pelaksanaan
3. Bagaimanakah keutamaan lokasi?
Padan dengan fail tertentu (lokasi = laluan penuh) > (lokasi ~* laluan penuh) > Laluan)> (lokasi /)Gunakan direktori untuk memadankan untuk mengakses fail(lokasi = direktori) > (direktori ~*)> (lokasi /)4. Mengapa fail dan direktori hanya berubah dalam keadaan tidak sensitif
Formula ungkapan biasa: Tujuannya untuk memadankan fail setepat mungkin—Atas ialah kandungan terperinci Kaedah lompat padanan lokasi dan tulis semula dalam Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!