Bagaimana untuk mengkonfigurasi lokasi dalam pelayan Nginx
Sintaks
lokasi [=|~|~*|^~] /uri/ {...}
Peraturan
= : Menunjukkan padanan uri yang tepat (pelajar yang berminat boleh melihat perbezaan antara url dan uri)
~: Menunjukkan padanan biasa sensitif huruf besar/kecil
~*: Menunjukkan padanan biasa tidak sensitif huruf besar/kecil
lebih kurang 🎜>
Ujian padanan lokasi hanya menggunakan bahagian uri permintaan, bukan bahagian parameter. (Sebab: Terdapat terlalu banyak cara untuk menulis parameter dan tidak boleh dipadankan dengan tepat)
Tertib pemadanan lokasi
Di bawah premis berbilang konfigurasi lokasi, susunan pemadanan lokasi (tidak disahkan , hey, google Searched above)
2 padanan ^~3 Kemudian lakukan pemadanan biasa mengikut susunan fail konfigurasi,
4 ia ke / untuk pemadanan umum Nota:
Apabila perlawanan berjaya, pemadanan akan dihentikan serta-merta dan permintaan akan diproses mengikut peraturan pemadanan semasa
Contoh demo
fail konfigurasi nginx, dibahagikan kepada tiga jenis dari bawah ke atas Struktur hierarki:
| http menyekat tahap protokol
blok lokasi ialah:
location [=|~|~*|^~|@] pattern { ... }
[=|~|~*|^~|@] dipanggil pengubah suai lokasi, yang akan menentukan cara nginx sepadan dengan corak berikut , dan atribut paling asas corak (rentetan ringkas atau ungkapan biasa).
Mengenai pengubah suai lokasi
Ini akan sepadan sepenuhnya dengan corak yang ditentukan dan corak di sini adalah terhad. menjadi rentetan ringkas, yang bermaksud ungkapan biasa tidak boleh digunakan di sini. contoh:
server { server_name jb51.net; location = /abcd { […] } }
Situasi yang sepadan: http://jb51.net/abcd # Padan betul dengan http://jb51.net/abcd # Jika menjalankan nginx The sistem pelayan itu sendiri tidak sensitif huruf besar-besaran, seperti tingkap, maka ia juga sepadan dengan
http://jb51.net/abcd?param1?m2 # Abaikan hujah rentetan pertanyaan, berikut adalah apa yang diikuti oleh /abcd? http://jb51.net/abcd/ # Tiada perlawanan, kerana terdapat garis miring di hujungnya, nginx tidak menganggap situasi ini sebagai perlawanan yang lengkap
http://jb51.net /abcde # Tidak sepadan, kerana ia bukan padanan lengkap
2 (tiada)
Anda tidak boleh menulis pengubah lokasi, nginx masih boleh memadankan corak. Dalam kes ini, padankan uri tersebut bermula dengan corak yang ditentukan Ambil perhatian bahawa uri di sini hanya boleh menjadi rentetan biasa dan ungkapan biasa tidak boleh digunakan.
contoh:
server { server_name website.com; location /abcd { […] } }
http://jb51.net/abcd # Padan betul dengan http://jb51.net/abcd # Jika menjalankan nginx The sistem pelayan itu sendiri tidak sensitif huruf besar-besaran, seperti tingkap, maka ia juga sepadan dengan
http://jb51.net/abcd?param1?m2 # Abaikan hujah rentetan pertanyaan, berikut ialah /abcd param1?m2? http://jb51.net/abcd/ # Garis miring mengekor di hujung juga berada dalam julat padanan
http://jb51.net/abcde # Masih padan, kerana uri adalah
bermula dengan corak 3. ~
Pengubah suai lokasi ini sensitif huruf besar dan kecil dan corak mestilah ungkapan biasa
example: server { server_name jb51.net; location ~ ^/abcd$ { […] } }
situasi sepadan: http: //jb51.net/abcd # Padanan tepat
http://jb51.net/abcd # Tiada padanan, ~ adalah sensitif huruf besar/kecil http://jb51.net/abcd ?param1?m2 # Abaikan pertanyaan hujah rentetan, berikut ialah ?param1?m2
selepas /abcd http://jb51.net/abcd/ # Tidak padan kerana terdapat garis miring ke belakang pada penghujung (garis miring di belakang), tidak sepadan dengan ungkapan biasa^/ abcd$ http://jb51.net/abcde #Tidak sepadan dengan ungkapan biasa^/abcd$
Nota: Untuk sesetengah sistem yang tidak sensitif huruf besar-besaran, Contohnya, dalam tingkap, ~ dan ~* tidak berfungsi. Ini disebabkan terutamanya oleh sistem pengendalian.
4. ~*
与 ~ 类似,但这个 location modifier 不区分大小写,pattern 须是正则表达式
example:
server { server_name website.com; location ~* ^/abcd$ { […] } }
匹配情况:
http://jb51.net/abcd # 完全匹配
http://jb51.net/abcd # 匹配,这就是它不区分大小写的特性
http://jb51.net/abcd?param1?m2 # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
http://jb51.net/abcd/ # 不匹配,因为末尾存在反斜杠(trailing slash),并不匹配正则表达式 ^/abcd$
http://jb51.net/abcde # 不匹配正则表达式 ^/abcd$
5. ^~
匹配情况类似 2. (none) 的情况,以指定匹配模式开头的 uri 被匹配,不同的是,一旦匹配成功,那么 nginx 就停止去寻找其他的 location 块进行匹配了(与 location 匹配顺序有关)
6. @
用于定义一个 location 块,且该块不能被外部 client 所访问,只能被 nginx 内部配置指令所访问,比如 try_files or error_page
演示实例
产生的效果如下:
访问根目录/,匹配到location /
访问除hello.php之外的其它php程序,匹配到location ~ \.php$,并且用php5-fpm去运行
访问hello.php,匹配到location = /hello.php,访问被重定向到好联系官网
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi lokasi dalam pelayan Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara mengkonfigurasi nama domain Nginx pada pelayan awan: Buat rekod yang menunjuk ke alamat IP awam pelayan awan. Tambah blok hos maya dalam fail konfigurasi Nginx, menyatakan port pendengaran, nama domain, dan direktori akar laman web. Mulakan semula nginx untuk memohon perubahan. Akses konfigurasi ujian nama domain. Nota Lain: Pasang sijil SSL untuk membolehkan HTTPS, pastikan firewall membenarkan trafik port 80, dan tunggu resolusi DNS berkuatkuasa.

Kaedah yang boleh menanyakan versi nginx adalah: gunakan perintah nginx -v; Lihat arahan versi dalam fail nginx.conf; Buka halaman ralat Nginx dan lihat tajuk halaman.

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Buat bekas di Docker: 1. Tarik Imej: Docker Pull [Nama Cermin] 2. Buat bekas: Docker Run [Options] [Mirror Name] [Command] 3. Mulailah bekas: Docker Start [Nama Container]

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Docker Container Startup Langkah: Tarik Imej Bekas: Run "Docker Pull [Mirror Name]". Buat bekas: Gunakan "Docker Buat [Pilihan] [Nama Mirror] [Perintah dan Parameter]". Mulakan bekas: Jalankan "Docker Start [Nama Container atau ID]". Semak Status Kontena: Sahkan bahawa bekas sedang berjalan dengan "Docker PS".
