Anda melihat 302 di log akses, etalase tidak memuat melalui VPN, dan kesimpulannya menulis sendiri. Kesimpulan itu biasanya salah dengan cara yang menarik. Respons pengalihan mencatat tujuan yang diperintahkan kepada peramban untuk dikunjungi, dan tidak mengatakan apa pun tentang apakah terowongan, sertifikat, atau aplikasi yang menimbulkan masalah. Baris log adalah awal penyelidikan, bukan temuannya.

302 mengatakan ke mana, bukan mengapa

Entri log akses mencatat permintaan, status, dan ukuran, dan biasanya menghilangkan header Location yang penting. Satu pengalihan bisa sepenuhnya normal: nama host kanonis, normalisasi garis miring di akhir, peralihan ke HTTPS. Yang Anda butuhkan adalah urutannya, karena satu lompatan dan sebuah loop adalah gangguan berbeda dengan pemilik berbeda. Lompatan berulang antar skema menunjuk pada penanganan URL dan skema. Lompatan ke nama yang tidak dapat diresolusi peramban menunjuk ke tempat yang sama sekali lain.

Tidak satu pun dari itu adalah bukti tentang VPN. Terowongan adalah jalur; pengalihan adalah instruksi yang ditulis aplikasi.

Tangkap rantainya, bukan baris lognya

Gunakan tampilan jaringan peramban dan catat empat bidang per lompatan: URL yang diminta, status, header Location, dan waktu. Akhiri dengan respons akhir atau dengan galat koneksi, karena kasus yang menarik adalah lompatan yang tidak pernah selesai. Lakukan sekali pada jalur yang berfungsi dan sekali pada jalur yang gagal, dengan akun dan navigasi yang sama. Membandingkan dua rantai lebih berharga daripada baris mana pun dalam log.

Simpan catatan itu secara pribadi. URL membawa pengenal sesi, dan arsip peramban yang tersimpan membawa lebih dari yang Anda duga. Hapus string kueri sebelum menempelkan apa pun ke tiket.

Gagasan aplikasi tentang URL-nya sendiri

Magento menghasilkan URL absolut dari konfigurasi, dengan cakupan per situs web atau tampilan toko. bin/magento config:show web/secure/base_url mencetak nilai yang diyakini aplikasi, dan itu sering kali nama host sisa dari build atau migrasi, bukan yang digunakan peramban. Jika di sana tercantum host internal, peramban dikirim ke tempat yang tidak dapat dijangkau, dan tidak ada perubahan terowongan yang memperbaikinya.

Bandingkan URL dasar yang aman dan tidak aman dengan nama publik di depan Anda. Ketidakcocokan pada salah satunya menghasilkan tepat pengalihan yang sedang Anda tatap.

Header proxy tepercaya adalah kontrak

Ketika TLS berakhir di penyeimbang beban, aplikasi melihat HTTP biasa dan harus diberi tahu sebaliknya. Pengaturan header offloader menamai header yang ditetapkan proxy, seperti protokol yang diteruskan, dan aplikasi memercayainya untuk keputusan skema.

Kepercayaan itu adalah kontrak dengan satu proxy, bukan izin umum. Menerima header dari klien sembarangan memungkinkan siapa pun mengklaim skema, karena itulah header tersebut hanya layak ada di tempat proxy yang ditunjuk menetapkannya. Jika nama header dan perilaku proxy tidak sepakat, aplikasi menghasilkan pengalihan ke skema yang tidak pernah digunakan peramban, dan loop itu tertutup. Periksa konfigurasi proxy dan pengaturan aplikasi bersama-sama, lalu bersihkan cache konfigurasi agar perubahan berlaku.

Ketika loop adalah sesi, bukan rute

Rantai yang selalu kembali ke halaman masuk biasanya masalah cookie. Periksa apakah cookie sesi diterbitkan untuk nama host yang benar-benar digunakan peramban, dan apakah ditandai aman pada koneksi yang dianggap aman oleh peramban. Cookie yang dicakupkan ke domain yang salah menghasilkan loop masuk yang tampak persis seperti kegagalan perutean.

Perbaiki ketidakcocokan yang terbukti pada pemiliknya, entah itu URL dasar, domain cookie, atau kontrak proxy, lalu uji ulang seluruh navigasi alih-alih menonton satu 302 menghilang. Menonaktifkan persyaratan HTTPS untuk memutus loop menukar pengalihan dengan masalah yang lebih buruk. Setelah perubahan selesai, periksa terowongan secara terpisah: minta sumber daya privat yang dikenal dan pastikan sumber itu tiba, sehingga pengalihan berikutnya memiliki garis dasar yang bersih untuk dibandingkan.

Artikel terkait