Saya telah menggunakan penyeimbang beban Alibaba Cloud SLB selama lebih dari 5 tahun, dan saya telah menggunakannya sejak beta internal Alibaba Cloud awal, dan setelah penerapan, terjadi kesalahan berikut:
Kesalahan terjadi sebentar-sebentar, setelah pertama kali booting, tidak ada kesalahan gateway 502, setelah menunggu satu menit, kesalahan muncul, kontainer Windows Server IIS backend ASP.NET situs web.
Klik IIS dari server untuk membuka browser, Anda dapat menjelajah secara normal, masalah tidak langsung penyeimbangan beban SLB, ini adalah pertama kalinya saya menemukannya.
Larutan:
Masalahnya terutama muncul di pengaturan "Metode Pemeriksaan Kesehatan", pengaturan default adalah sebagai berikut:
Pemeriksaan kesehatan backend diminta di headway, dan jika kode status yang sesuai mengembalikan 2xx atau 3xx, server backend dianggap normal.
Kami mencoba membuat permintaan header dengan tiga cara, pertama, saya langsung menjalankan proyek lokal dan mengujinya secara lokal.
Tes 1:
Gunakan tes tukang pos seperti yang ditunjukkan di bawah ini:
Kembali ke keadaan 404 Tidak Ditemukan, sebenarnya, di sini, kita tahu apa penyebabnya.
Tes 2:
Gunakan pengujian ikal seperti yang ditunjukkan di bawah ini:
C:\Users\itsvse>curl -i -X HEAD http://localhost:60155/
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead. HTTP/1.1 404 Tidak Ditemukan
Cache-Control: private
Content-Length: 4432
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?QzpccHJvamVjdFxteVxDb2RlU2hhcmluZ1xDb2RlU2hhcmluZy5XZWJVSVxIb21lXEVycm9yNDA0?=
X-Powered-By: ASP.NET
Date: Tue, 13 Aug 2019 03:53:04 GMT
curl: (56) Recv failure: Connection was reset
Juga dikembalikan adalah kode status 404.
Tes 3:
Kali ini, kami menguji langsung di server resmi, melalui tes ikal di bawah PowerShell, seperti yang ditunjukkan pada gambar di bawah ini:
Anda dapat melihat bahwa halaman yang sama diminta melalui kepala,Terkadang kembali404kode status, terkadang dikembalikan200Kode status, sehingga mengkonfirmasi kesalahan 502 terputus-putus yang kami temui di awal.
Apa yang menyebabkan asp.net sebentar-sebentar mengembalikan kode status 404 dan 200?
Karena beranda kita memiliki cache, ketika pengguna menggunakan metode get untuk meminta beranda, halaman akan berhasil di-cache, dan kemudian head dan get akan selalu mengembalikan halaman yang di-cache, dan juga akan mengembalikan kode respons 200, jika, setelah cache kedaluwarsa, tidak ada pengguna yang membuat permintaan metode get, hanya permintaan metode head melalui perintah, kesalahan 404 akan terjadi. Diperkirakan hanya sedikit orang yang akan menghadapi masalah semacam ini.
Solusinya adalah dengan memeriksa semua kode status respons dalam mode pemeriksaan kesehatan, seperti yang ditunjukkan pada gambar di bawah ini:
Cara memecahkan masalah kelainan pemeriksaan kesehatan Layer 7 Listening (HTTP/HTTPS):Login hyperlink terlihat.
(Akhir)
|