


Bagaimana cara menyediakan blok pelayan lalai untuk mengendalikan domain yang tidak diketahui?
Aug 01, 2025 am 07:24 AMBlok pelayan lalai di Nginx dikonfigurasikan untuk mengendalikan permintaan domain yang tidak dapat ditandingi, memastikan trafik yang tidak diketahui mendapat respons terkawal. Untuk menetapkan satu: 1) Buat blok pelayan dengan parameter Default_server pada Arahan Dengar, 2) Gunakan _ sebagai server_name untuk menangkap semua domain yang tidak dapat ditandingi, dan 3) Pilih respons seperti mengembalikan ralat 444 atau 403, mengalihkan, atau melayani halaman mudah. Adalah lebih baik untuk meletakkan konfigurasi ini dalam fail sendiri di bawah/etc/nginx/tapak -tersedia/, pastikan hanya satu lalai wujud, menguji dengan nginx -t, dan elakkan tumpang tindih dengan blok pelayan lain untuk mengekalkan tingkah laku yang boleh diramal.
Apabila pelawat memukul pelayan Nginx anda dengan domain yang tidak dikonfigurasikan, anda ingin memastikan mereka mendarat di tempat yang selamat atau sekurang -kurangnya mendapat respons yang bersih. Di sinilah blok pelayan lalai berguna. Inilah caranya untuk menetapkannya dengan betul.
Apakah blok pelayan lalai?
Nginx menggunakan blok pelayan (serupa dengan tuan rumah maya di Apache) untuk mengendalikan domain yang berbeza. Jika permintaan tidak sepadan dengan mana -mana blok pelayan yang ditakrifkan, NGINX akan menggunakan blok pelayan lalai - pada dasarnya sandaran.
Ini penting kerana tanpa itu, blok pelayan pertama dalam konfigurasi anda mungkin secara tidak sengaja bertindak balas terhadap lalu lintas yang tidak diketahui. Ini boleh menyebabkan kekeliruan atau bahkan mendedahkan kandungan yang tidak diingini.
Anda boleh menentukan blok pelayan mana yang bertindak sebagai lalai dengan menggunakan parameter default_server
pada arahan listen
.
Contoh:
pelayan { Dengar 80 default_server; server_name _; kembali 444; }
Cara mengkonfigurasi blok pelayan lalai yang selamat
Menetapkan ini adalah mudah. Bahagian utama adalah:
- Menggunakan
listen ... default_server
- Menetapkan
server_name
Generik - Mengembalikan tindak balas yang tidak mengganggu
Inilah yang perlu dilakukan langkah demi langkah:
- Buat blok pelayan baru (atau edit yang sedia ada).
- Tambah
default_server
ke Arahanlisten
. - Gunakan
_
sebagaiserver_name
- ini sepadan dengan mana -mana domain yang tidak disenaraikan secara eksplisit di tempat lain. - Tentukan bagaimana anda ingin mengendalikan permintaan yang tidak dapat ditandingi.
Beberapa pilihan biasa untuk mengendalikan domain yang tidak diketahui:
- Kembalikan ralat 403 atau 444 (bersih dan tenang)
- Mengalihkan ke laman utama atau halaman pendaratan
- Log percubaan dan kembalikan ralat (untuk pemantauan)
Apakah tindak balas yang harus anda kembali?
Mengembalikan kod status 444 selalunya pilihan yang baik kerana ia menutup sambungan dengan senyap - tiada log di sisi klien, dan ia menjelaskan permintaan itu tidak ditangani. Ia amat berguna jika anda tidak mahu bot atau lalu lintas rawak untuk mendapatkan sebarang tindak balas.
Sebagai alternatif:
- Gunakan
return 403;
dengan jelas menafikan akses - Hidangkan halaman HTML yang mudah menerangkan domain tidak diiktiraf
- Redirect dengan
return 301 https://yourmaindomain.com;
Perlu diingat bahawa mengembalikan halaman sebenar mungkin mendedahkan lebih banyak daripada yang anda inginkan. Kesederhanaan biasanya lebih baik di sini.
Di mana untuk meletakkan konfigurasi
Penyediaan Nginx yang paling moden Split Server Blok ke dalam fail berasingan di bawah /etc/nginx/sites-available/
dan symlink mereka ke /etc/nginx/sites-enabled/
.
Untuk mengelakkan konflik:
- Pastikan hanya satu blok pelayan mempunyai set
default_server
- Letakkan blok pelayan lalai dalam failnya sendiri (misalnya,
default.conf
) - Uji konfigurasi anda dengan
nginx -t
setelah membuat perubahan
Jika pelbagai blok pelayan mempunyai default_server
, nginx akan memilih yang pertama yang ditemui, yang boleh membawa kepada tingkah laku yang tidak dapat diramalkan.
Itu pada dasarnya semua ada. Tetapkan satu blok pelayan lalai, pilih respons apa yang hantar, dan pastikan ia tidak sengaja bertindih dengan laman web anda yang lain.
Atas ialah kandungan terperinci Bagaimana cara menyediakan blok pelayan lalai untuk mengendalikan domain yang tidak diketahui?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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

Apabila Nginx mengalami kesilapan "toomyopenfiles", biasanya kerana sistem atau proses telah mencapai had deskriptor fail. Penyelesaian termasuk: 1. Meningkatkan had lembut dan keras sistem Linux, tetapkan parameter yang relevan Nginx atau menjalankan pengguna di /etc/security/limits.conf; 2. Laraskan nilai worker_connections nginx untuk menyesuaikan diri dengan trafik yang dijangkakan dan memastikan konfigurasi yang terlalu banyak; 3. Meningkatkan had atas deskriptor fail peringkat sistem fs.file-max, edit /etc/sysctl.conf dan gunakan perubahan; 4. Mengoptimumkan penggunaan log dan sumber, dan mengurangkan penggunaan pemegang fail yang tidak perlu, seperti menggunakan Open_L

Fail konfigurasi nginx utama biasanya terletak di direktori conf di bawah /etc/nginx/nginx.conf (Ubuntu/Debian, Centos/Rhel), /usr/local/etc/nginx/nginx.conf (macoshomebrew) atau laluan pemasangan kod sumber; Anda boleh melihat laluan konfigurasi yang dimuatkan melalui nginx-t, ps-ef | grepnginx Periksa laluan yang ditentukan oleh parameter permulaan, atau gunakan mencari/-namenginx.conf dan locatenginx.conf untuk mencari dengan cepat; Struktur fail konfigurasi termasuk tetapan global, blok peristiwa dan blok HTTP, dan konfigurasi tapak umum adalah perkara biasa.

Penyemak imbas menggesa amaran "kandungan campuran" kerana sumber HTTP dirujuk dalam halaman HTTPS. Penyelesaiannya ialah: 1. Periksa sumber kandungan campuran di laman web, lihat maklumat konsol melalui alat pemaju atau gunakan pengesanan alat dalam talian; 2. Gantikan pautan sumber ke https atau laluan relatif, tukar http: // ke https: // atau gunakan format //example.com/path/to/resource.js; 3. Kemas kini kandungan dalam CMS atau pangkalan data, gantikan pautan HTTP dalam artikel dan halaman satu demi satu, atau gantikannya dalam kelompok dengan pernyataan SQL; 4. Tetapkan pelayan untuk menulis semula permintaan sumber secara automatik, dan tambahkan peraturan ke konfigurasi pelayan untuk memaksa HTTPS untuk melompat.

Membolehkan pemampatan GZIP dapat mengurangkan saiz fail laman web dan meningkatkan kelajuan pemuatan. 1. Pelayan Apache perlu menambah konfigurasi dalam fail .htaccess dan pastikan modul mod_deflate diaktifkan; 2.Nginx perlu mengedit fail konfigurasi tapak, tetapkan gzipon dan tentukan jenis mampatan, panjang minimum dan tahap mampatan; 3. Selepas konfigurasi selesai, anda boleh mengesahkan sama ada ia berkuatkuasa melalui alat dalam talian atau alat pemaju pelayar. Perhatikan status modul pelayan dan integriti jenis MIME semasa operasi untuk memastikan operasi mampatan biasa.

Modul Stub_Status memaparkan maklumat status asas masa nyata nginx. Khususnya, ia termasuk: 1. Bilangan sambungan aktif sekarang; 2. Jumlah sambungan yang diterima, jumlah sambungan pemprosesan, dan jumlah permintaan; 3. Bilangan sambungan dibaca, ditulis, dan menunggu. Untuk menyemak sama ada ia diaktifkan, anda boleh menyemak sama ada parameter --with-http_stub_status_module wujud melalui perintah nginx-v. Jika tidak diaktifkan, recompile dan tambahkan modul. Apabila diaktifkan, anda perlu menambah blok lokasi ke fail konfigurasi dan menetapkan kawalan akses. Akhirnya, muat semula perkhidmatan nginx untuk mengakses halaman status melalui laluan yang ditentukan. Adalah disyorkan untuk menggunakannya dalam kombinasi dengan alat pemantauan, tetapi ia hanya tersedia untuk akses rangkaian dalaman dan tidak dapat menggantikan penyelesaian pemantauan yang komprehensif.

Untuk membolehkan sokongan HTTP/2 atau HTTP/3 NGINX, prasyarat mesti dipenuhi dan dikonfigurasi dengan betul; Http/2 memerlukan nginx1.9.5, openssl1.0.2 dan persekitaran https; tambah --with-http_v2_module modul semasa konfigurasi, ubah suai pernyataan mendengar ke Listen443SSLHTTP2; dan membebankan perkhidmatan; HTTP/3 didasarkan pada modul Quic, dan pihak ketiga seperti Nginx-Quic diperlukan untuk memperkenalkan cawangan BoringsSL atau OpenSslquic semasa penyusunan, dan mengkonfigurasi port mendengar UDP; Masalah biasa semasa penempatan termasuk ALPN tidak didayakan, perakuan tidak serasi, sekatan firewall dan kesilapan kompilasi, disarankan untuk menggunakan keutamaan

Kesilapan "AlamatAndedInuse" bermaksud bahawa program atau perkhidmatan lain dalam sistem telah menduduki port sasaran atau alamat IP. Sebab -sebab umum termasuk: 1. Pelayan berjalan berulang kali; 2. Perkhidmatan lain menduduki pelabuhan (seperti Apache menduduki port 80, menyebabkan Nginx gagal memulakan); 3. Pelabuhan tidak dibebaskan selepas kemalangan atau dimulakan semula. Anda boleh menyelesaikan masalah melalui alat baris arahan: Gunakan Sudolsof-I: 80 atau Sudolnetstat-Tulpn | Grep: 80 dalam Linux/MacOS; Gunakan NetStat-Ano | Findstr: 80 di Windows dan periksa PID. Penyelesaian termasuk: 1. Hentikan proses yang bercanggah (seperti sudo

Ujian A/B boleh dilaksanakan melalui modul Split_Clients Nginx, yang mengedarkan trafik secara proporsional kepada kumpulan yang berlainan berdasarkan hash atribut pengguna. Langkah -langkah khusus adalah seperti berikut: 1. Gunakan arahan split_clients untuk menentukan kumpulan dan perkadaran di blok HTTP, seperti 50%A dan 50%B; 2. Gunakan pembolehubah seperti $ cookie_jsessionid, $ remote_addr atau $ arg_uid sebagai kunci hash untuk memastikan pengguna yang sama terus diperuntukkan kepada kumpulan yang sama; 3. Gunakan backend yang sama melalui jika keadaan di pelayan atau blok lokasi; 4. Catat maklumat kumpulan melalui format log tersuai untuk menganalisis kesannya; 5. Jejaki prestasi setiap kumpulan dengan alat pemantauan
