Bagaimana saya bisa tahu ke server mana saya memuat dengan seimbang?

8

Saya ingin menguji beberapa perubahan konfigurasi untuk sinkronisasi satu arah antara dua server yang berada di belakang load balancer (ini semua infrastruktur Rackspace Cloud FYI). Masalah yang saya miliki adalah bahwa saya tidak bisa memastikan server mana yang saya muat dengan seimbang karena IP yang saya berikan selalu IP penyeimbang beban.

Apakah ada cara sederhana (atau bahkan tidak sangat sederhana) untuk mengetahui server mana yang sebenarnya saya tuju. Saya idealnya menyukai sesuatu di browser karena itu berarti anggota tim non-teknis juga dapat melaporkan masalah dengan relatif mudah tetapi gagasan tentang pendekatan terbaik untuk ini akan dihargai.

Info tambahan: Kedua server menjalankan Apache dan penyeimbang beban memiliki persistensi sesi yang dikonfigurasi.

Willl
sumber

Jawaban:

8

Jika Anda ingin diam-diam, suruh server web mengidentifikasi dirinya di Server:header respons ( RFC 2616 Sec 14.38 ). Misalnya, di Apache, informasi yang dikembalikan di header itu dikendalikan oleh ServerTokensarahan. Kemudian, itu hanya masalah memeriksa header respons di Firebug , Chrome DevTools , atau timeline Safari Web Inspector .

Jika Anda ingin terlihat jelas, Anda dapat meminta aplikasi web Anda menyematkan nama server di halaman yang dihasilkannya sebagai teks yang terlihat. Anda juga dapat melaporkan nama server dalam komentar HTML, yang membutuhkan Lihat Sumber untuk melihatnya.

200_sukses
sumber
Terima kasih @ 200_sukses. Itu semua terdengar sangat mudah. Memperbarui pertanyaan saya untuk mengatakan bahwa server menjalankan Apache sehingga tautan Anda juga bermanfaat dan relevan.
Willl
2

Anda tidak menyatakan protokol mana yang Anda gunakan, jadi saya mengasumsikan kita berbicara https.

Setiap backend mungkin mengetahui beberapa informasi tentang dirinya sendiri, yang secara unik akan mengidentifikasi backend itu. Itu bisa berupa nama host atau alamat IP unicast. Backend dapat memasukkan informasi itu di lokasi yang sesuai. Anda bisa memasukkannya dalam catatan kaki di setiap halaman. Atau jika Anda pikir itu terlalu terlihat, hanya sertakan di halaman yang tidak akan dikunjungi pengguna dalam keadaan normal. Halaman kesalahan apa pun (404, 500, dll.) Harus selalu menyertakan identifikasi backend.

Jika penyeimbang beban Anda hanya penyeimbangan beban dan tidak melakukan hal lain, maka Anda akan menghentikan https di backend, dan setiap kali koneksi TCP ditutup dan klien terhubung kembali, ada kemungkinan klien diarahkan ke backend yang berbeda.

Load balancer dapat mengingat backend yang paling terakhir digunakan untuk semua alamat IP klien yang terlihat dalam satu jam terakhir untuk menggunakan kembali backend yang sama sebagian besar waktu. Setiap informasi yang lebih terperinci seperti cookie dan id pengguna akan berada di luar jangkauan penyeimbang beban, sehingga tidak dapat menggunakannya untuk menjaga pengguna di backend yang sama.

Ini berarti identifikasi apa pun yang menggunakan backend pengguna harus diambil dengan sebutir garam, karena pengguna bisa bergerak antara backend antara waktu di mana mereka mengalami masalah dan waktu di mana mereka menemukan backend yang mereka gunakan. Tetapi ini masih informasi yang berharga, karena dalam banyak kasus akan membantu menemukan log yang relevan lebih cepat.

kasperd
sumber
Terima kasih Kasperd, itu sangat membantu. Saya telah memperbarui pertanyaan untuk dicatat bahwa persistensi sesi dikonfigurasikan pada load balancer.
Willl