Rumah >Operasi dan penyelenggaraan >Nginx >Kaedah lompat padanan lokasi dan tulis semula dalam Nginx

Kaedah lompat padanan lokasi dan tulis semula dalam Nginx

WBOY
WBOYke hadapan
2023-05-22 15:25:191791semak imbas

    1. Tulis semula pelaksanaan lompatan

    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

    2. Tulis semula urutan pelaksanaan

    ①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

    Selepas URL ditukar kepada domain baharu nama, yang lama Akses akan melompat ke nama domain baharu, contohnya, akses kepada 360buy.com JD.com akan melompat ke jd.com

    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 [flag];

    regex: mewakili peraturan padanan biasa

    penggantian: mewakili kandungan selepas lompatan

    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

      pecah: Peraturan ini akan tamatkan apabila pemadanan selesai dan tidak lagi sepadan dengan mana-mana peraturan berikutnya , biasanya digunakan di lokasi
    • ubah hala: Mengembalikan 302 ubah hala sementara, alamat penyemak imbas akan memaparkan alamat URL selepas lompatan.
    • kekal : Kembali ke 301 ubah hala kekal, bar alamat penyemak imbas akan memaparkan alamat URL yang diubah hala
    • 5. Nginx simbol ungkapan biasa yang biasa digunakan
    6 Lokasi

    1 Klasifikasi

    Kaedah lompat padanan lokasi dan tulis semula dalam Nginxlokasi boleh dibahagikan secara kasar kepada tiga kategori berikut:

    Padanan tepat: lokasi = / {…}

      Padanan umum: lokasi / {…}
    • Biasa padanan: lokasi ~ / {…}
    • 2 Peraturan padanan biasa
    3

    Padanan tepat dahulu =

    Kaedah lompat padanan lokasi dan tulis semula dalam Nginx

    Kedua, padanan awalan^~

    • 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

    • localtion = / {}
    • = ialah padanan tepat / dan tiada rentetan boleh diletakkan selepas nama hos Contohnya, apabila mengakses / dan /xcf, / akan sepadan, tetapi /xcf tidak akan sepadan dengan

    • lokasi / {}

    Oleh kerana semua alamat bermula dengan /, ini. peraturan akan sepadan dengan semua permintaan, seperti mengakses / dan /data, kemudian / sepadan, /data Juga 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)

    Kaedah lompat padanan lokasi dan tulis semula dalam Nginx

    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;

    Ringkasan:

    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

      <.>
    • Laksanakan arahan tulis semula dalam blok pelayan

    • Laksanakan padanan lokasi

    • Laksanakan lokasi yang dipilih Arahan tulis semula dalam

    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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam