Apakah logik padanan Pelayan dan Lokasi dalam Nginx?
Logik pemadanan pelayan
Apabila nginx memutuskan blok pelayan mana untuk melaksanakan permintaan, ia tertumpu terutamanya pada medan listen dan server_name dalam blok pelayan
arahan dengar
Medan dengar mentakrifkan IP dan port respons pelayan Jika medan dengar tidak dikonfigurasikan secara eksplisit, pendengaran lalai ialah 0.0.0.0:80 (root) atau. 0.0.0.0:8080 (Bukan akar)
dengar boleh dikonfigurasikan sebagai:
Gabungan ip dan port
Satu ip , dengar port 80 secara lalai
Satu port, dengar semua antara muka ip secara lalai
soket unix laluan
Item terakhir biasanya hanya digunakan untuk menghantar permintaan antara pelayan yang berbeza
Peraturan untuk memilih pelayan untuk digunakan adalah seperti berikut:
nginx Mula-mula, tukar semua arahan dengar yang "tidak lengkap", seperti arahan tanpa medan dengar untuk mendengar 0.0.0.0:80, dengar 1.1.1.1 untuk mendengar 1.1.1.1:80, dsb.
nginx mencipta senarai blok pelayan yang paling sepadan dengan permintaan berdasarkan IP dan port yang diminta Ia mula-mula sepadan dengan blok pelayan yang menentukan IP tertentu, dan kemudian pilih blok pelayan yang mendengar 0.0. .0.0. Tetapi tidak kira apa keadaannya, , port mestilah padanan yang tepat
Jika terdapat hanya satu perlawanan terbaik, maka blok pelayan yang sepadan akan digunakan untuk bertindak balas kepada permintaan, jika tidak, arahan nama pelayan bagi setiap blok pelayan akan dinilai
Sekali lagi, arahan nama_server hanya akan dinilai apabila arahan dengar tidak dapat mencari padanan terbaik 🎜>Sebagai contoh, kami menganggap bahawa nama domain example.com menghala ke 192.168.0.1, dan nginx terletak pada 192.168.0.1 mempunyai dan hanya dua blok pelayan berikut:
# server block 1server { listen 192.168.0.1; server_name other.com ... } # server block 2server { listen 80; server_name example.com ... }
Jika padanan terbaik tidak boleh diperolehi mengikut arahan dengar, ia akan Mula menghuraikan arahan nama_server nginx akan menyemak pengepala "hos" dalam permintaan ini klien sebenarnya cuba meminta nginx akan memadankan arahan nama_server berdasarkan nilai ini Peraturan padanan adalah seperti berikut:
- nginx akan cuba mencari blok pelayan yang betul-betul sepadan dengan. nama_server dan nilai hos. Jika berbilang padanan tepat ditemui, blok pelayan pertama yang sepadan akan digunakan
- Jika tiada blok pelayan yang sepadan tepat ditemui, nginx cuba mencari blok pelayan yang nama_pelayannya bermula dengan *. Jika berbilang ditemui, blok pelayan yang paling lama akan dipilih
- jika Jika blok pelayan yang bermula dengan tidak ditemui, ia akan mencari blok pelayan yang berakhir dengan , jika terdapat berbilang padanan, padanan terpanjang dipilih
- Jika tiada padanan blok pelayan * ditemui, ia akan mencari blok pelayan yang mentakrifkan nama_server menggunakan ungkapan biasa (bermula dengan ~. ). Jika berbilang padanan ditemui, padanan pertama
- akan digunakan jika tiada padanan ungkapan biasa ditemui, nginx akan memilih blok pelayan lalai yang sepadan dengan medan dengar. Setiap gabungan IP dan port boleh dikonfigurasikan dengan satu dan hanya satu blok pelayan lalai Jika tidak, yang pertama dalam senarai tersedia akan dipilih Pelayan (pemilihan pada masa ini adalah rawak, pesanan tidak tetap)
- Contohnya adalah seperti berikut:
(1) Padanan nama_pelayan yang tepat, contohnya:
server { listen 80; server_name www.domain.com; ... }
(2) Rentetan bermula dengan * kad bebas:
server { listen 80; server_name *.domain.com; ... }
(3) Rentetan yang berakhir dengan * kad bebas:
server { listen 80; server_name www.*; ... }
(4) Ungkapan biasa yang sepadan:
server { listen 80; server_name ~^(?.+)\.domain\.com$; ... }
(5) Jika tiada satu pun yang sepadan, default_server digunakan tidak dinyatakan, pelayan pertama yang tersedia akan dipilih Kami boleh menentukan bahawa apabila tiada nilai hos yang sepadan, ralat akan dikembalikan kepada klien Boleh digunakan untuk menghalang orang lain daripada mengalihkan trafik spam ke tapak web anda.
server { listen 80 default_server; server_name _; return 444; }
Biarkan nginx memutuskan sambungan daripada penyemak imbas dengan mengembalikan 444, kod ralat bukan standard nginx
Logik padanan lokasiAnalisis sintaks lokasi
1. iaitu pemadanan yang tidak termasuk ungkapan biasa) 2 Jika terdapat blok lokasi menggunakan = pengubah suai yang sepadan sepenuhnya dengan URL yang diminta, lokasi akan digunakan serta-merta untuk membalas permintaan 3. Jika tiada padanan blok lokasi dengan = pengubah ditemui, awalan yang tidak tepat akan terus dikira, awalan padanan terpanjang akan ditemui berdasarkan uri yang diberikan, dan kemudian pemprosesan berikut akan dilakukan: (1) Jika Lokasi padanan terpanjang mempunyai ^~ pengubah suai, dan nginx akan segera menggunakan lokasi ini untuk membalas permintaan (2) Jika lokasi padanan terpanjang tidak mempunyai ^~ pengubah suai, nginx akan menyimpan sementara perlawanan , dan kemudian meneruskan pemadanan berikutnya 4. Selepas menentukan dan menyimpan blok lokasi awalan padanan yang paling lama, nginx terus menyemak lokasi padanan ungkapan biasa (sensitif huruf besar/kecil/huruf-. tidak sensitif). Jika terdapat ungkapan biasa Jika padanan yang diperlukan dipenuhi, lokasi ungkapan biasa pertama yang sepadan dengan uri yang diminta akan dipilih untuk membalas permintaan 5. Jika tiada lokasi ungkapan biasa yang sepadan dengan uri yang diminta ditemui, yang sebelumnya akan digunakan Permintaan respons lokasi awalan yang paling lama disimpan Biasanya, sebaik sahaja anda memilih untuk menggunakan lokasi tertentu untuk membalas permintaan, permintaan akan diproses dalam lokasi tersebut, tanpa mengira lokasi lain, bagaimanapun, arahan tertentu di lokasi akan mencetuskan padanan lokasi baharu, seperti: (1) fail_cuba (2) tulis semula (3) halaman_ralat Atas ialah kandungan terperinci Apakah logik padanan Pelayan dan Lokasi dalam Nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!location optional_modifier location_match {
...
}
Peraturan penentuan

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Terdapat lima kaedah untuk komunikasi kontena dalam persekitaran Docker: rangkaian kongsi, Karang Docker, proksi rangkaian, volum dikongsi dan baris gilir mesej. Bergantung pada keperluan pengasingan dan keselamatan anda, pilih kaedah komunikasi yang paling sesuai, seperti memanfaatkan Docker Compose untuk memudahkan sambungan atau menggunakan proksi rangkaian untuk meningkatkan pengasingan.

Untuk mendaftar untuk phpMyAdmin, anda perlu terlebih dahulu mencipta pengguna MySQL dan memberikan kebenaran kepadanya, kemudian memuat turun, memasang dan mengkonfigurasi phpMyAdmin, dan akhirnya log masuk ke phpMyAdmin untuk mengurus pangkalan data.

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Langkah penyelesaian masalah untuk pemasangan phpMyAdmin yang gagal: Semak keperluan sistem (versi PHP, versi MySQL, pelayan web dayakan sambungan PHP (mysqli, pdo_mysql, mbstring, token_get_all semak tetapan fail konfigurasi (hos, port, nama pengguna, kata laluan); kebenaran (pemilikan direktori, keizinan fail); phpMyAdmin
