Pertanyaan
Instans SLB menggunakan pendengar HTTP dan dikonfigurasi dengan metode HEAD untuk pemeriksaan kesehatan. Pengecualian ditampilkan dalam pemeriksaan kesehatan meskipun situs bisnis dapat diakses secara normal. Untuk mensimulasikan pemeriksaan kesehatan, Anda dapat menggunakan metode HEAD dan menjalankan perintah nc untuk menguji status situs bisnis. Contoh perintah adalah sebagai berikut:
echo -e "HEAD /test.html HTTP/1.0\r\n\r\n" | nc -t www.example.com 80Catatan: test.html dan www.example.com dalam perintah hanya contoh. Situasi sebenarnya digunakan di situs.
Kode status HTTP 404 dikembalikan sebagai berikut:

Untuk perbandingan, jalankan perintah curl untuk menguji status situs bisnis.
curl -I http://www.example.com/test.htmlGambar berikut menunjukkan bahwa nilai kode status HTTP adalah 200, yang normal dan berbeda dari metode HEAD serta perintah nc.

Masalah utama yang disebutkan di atas adalah sebagai berikut:
Masalah 1: Situs layanan dapat diakses secara normal, mengapa pemeriksaan kesehatan SLB dan tes simulasi dalam metode
HEADserta perintahncmenampilkan pengecualian situs tetapi perintahcurlmenampilkan situs berjalan normal?Masalah 2: Kode status HTTP yang dikembalikan oleh situs layanan adalah 404. Mengapa pemeriksaan kesehatan abnormal?
Penyebab
Penyebab masalah di atas adalah sebagai berikut:
Masalah 1: Alasan hasil yang berbeda adalah sebagai berikut:
Perintah
curl: Perintahcurlsesuai dengan hasil yang dikembalikan oleh browser. File sumber daya di bawah domain yang diminta diakses, yaitu file test.html di bawah nama domain www.example.com.Pemeriksaan kesehatan instans SLB: Jika tidak ada nama domain pemeriksaan kesehatan yang dikonfigurasikan untuk instans SLB, nama domain permintaan untuk pemeriksaan kesehatan adalah alamat IP server backend, seperti 192.0.2.1. File tidak ditemukan, sehingga kode status HTTP 404 dikembalikan.
CatatanCatatan: Berikut ini mengambil konfigurasi default Nginx sebagai contoh. Konfigurasi default Nginx berisi situs web default.
Metode
HEADdan simulasi tes perintahnc: MetodeHEADitu sendiri baik-baik saja, tetapi perintahncmeneruskan permintaan ke alamat IP yang sesuai dengan nama domain, yang sama dengan pemeriksaan kesehatan instans SLB. Permintaan akhir akan menuju ke situs default server Web, sehingga kode status HTTP 404 dikembalikan.
Masalah 2: Secara default, konfigurasi pemeriksaan kesehatan instans SLB menggunakan http_2xx dan http_3xx sebagai kode status normal. Semua kode status lainnya diidentifikasi sebagai kode status abnormal. HTTP 404 termasuk dalam http_4xx, sehingga dianggap sebagai pengecualian situs oleh pemeriksaan kesehatan.
Jawaban
Topik ini memberikan solusi berbeda untuk masalah yang berbeda.
Masalah 1: Mengenai masalah ini, ada dua solusi, Anda dapat memilih sesuai dengan situasi sebenarnya:
Tingkatkan konfigurasi pemeriksaan kesehatan instans SLB. Anda dapat masuk ke instans SLB untuk menyempurnakan konfigurasi pemeriksaan kesehatan jalur pemeriksaan kesehatan dan opsi domain pemeriksaan kesehatan. Sebagai contoh, Anda dapat mengatur domain pemeriksaan kesehatan untuk
www.example.com, jalur pemeriksaan kesehatan untuk/test.html. Untuk informasi lebih lanjut tentang cara mengonfigurasi pemeriksaan kesehatan dan kedua opsi ini, lihat konfigurasi pemeriksaan kesehatan.Nonaktifkan situs default untuk server Web Anda. Anda dapat mengubah file konfigurasi server Web untuk menonaktifkan situs default. Metode konfigurasi bervariasi menurut server Web. Prosedur berikut menggunakan server Nginx sebagai contoh.
Masuk secara remote ke server tempat Nginx diinstal.
Temukan file konfigurasi utama untuk Nginx. Jalur default adalah
/etc/nginx/nginx.conf. Jika Nginx diinstal menggunakan kode sumber, Anda dapat mengonfirmasi jalur file konfigurasi utama Nginx.Edit file konfigurasi utama Nginx, temukan segmen konfigurasi server yang ditandai sebagai default_server, komentari segmen kode ini dengan tanda pagar (#), dan keluar serta simpan file.

Jalankan perintah berikut untuk memastikan bahwa file konfigurasi yang diperbarui normal:
nginx -tJika sistem mengembalikan pengecualian, perbaiki sesuai petunjuk sampai sistem mengembalikan hal berikut.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulJalankan perintah berikut untuk memuat ulang file konfigurasi Nginx:
nginx -s reloadPeriksa kembali status instans pemeriksaan kesehatan.
Masalah 2: Anda dapat memilih pemeriksaan kesehatan HTTP yang berada dalam status normal dalam konfigurasi kode status instans SLB Anda berdasarkan kebutuhan bisnis Anda. Jika Anda tidak menganggap HTTP 404 sebagai pengecualian situs, Anda dapat memilih http_4xx sebagai kode status normal. Untuk informasi lebih lanjut tentang cara Memeriksa Kesehatan instans SLB, lihat konfigurasi pemeriksaan kesehatan.
Ruang lingkup aplikasi
SLB