Penyeimbangan Beban dan Ketersediaan Tinggi Server Aplikasi: Tomcat, Jboss dan IIS

DIPOSTING OLEH Zevenet | 24 Februari 2017

Perusahaan

Tujuan artikel ini adalah untuk menjelaskan cara memperbesar kapabilitas aplikasi server seperti Kucing jantan, Jboss or IIS dengan membuat mereka sangat terukur web dan dengan menyiapkannya di ketersediaan tinggi agar toleran terhadap kegagalan, dan bagaimana memperkuat keamanan siber.

Apa ketersediaan tinggi?

Ketersediaan tinggi adalah kualitas sistem atau komponen yang menjamin kinerja operasional tingkat tinggi, biasanya waktu aktif, untuk periode waktu yang lebih tinggi dari biasanya.

Dengan mengatur Server Aplikasi dalam ketersediaan tinggi, kami memecahkan masalah berikut:

  1. Satu server kehilangan efisiensi saat menangani sejumlah besar permintaan
  2. Data sesi disimpan jika terjadi kegagalan server
  3. Memperbarui aplikasi tanpa menghentikan layanan

Apa itu skala web?

Menerapkan prinsip skala web ke Server Aplikasi, semua proses bisnis dari berbagai ukuran dapat tumbuh, dioptimalkan, diotomatisasi, dan dapat diukur secara efektif.

Apa itu server aplikasi?

Server aplikasi adalah kerangka kerja perangkat lunak yang menyediakan logika bisnis untuk program aplikasi, ini berarti bahwa ia mengelola sumber daya untuk membuat aplikasi web dan lingkungan server untuk menjalankannya.
Meskipun artikel ini dapat digunakan sebagai panduan untuk server aplikasi apa pun, kami akan menjelaskan beberapa detail tentang yang paling populer, yaitu:

  1. The Kucing jantan perangkat lunak (atau juga dikenal sebagai Apache Tomcat atau server Tomcat): implementasi open source Java Servlet, JavaServer Pages, Java Expression Language dan teknologi Java WebSocket.
  2. JBoss or WildFly: server aplikasi yang dikembangkan oleh Red Hat.
  3. IIS (Layanan Informasi Internet): Server aplikasi yang dikembangkan oleh Microsoft.

Menyiapkan Penyeimbang Beban Zevenet

Dengan Zevenet Load Balancer kami dapat memastikan ketersediaan dan skalabilitas tinggi untuk server aplikasi. Perhatikan bahwa, untuk mengikuti instruksi ini akan diperlukan untuk menginstal instance Zevenet Load Balancer dan beberapa contoh server aplikasi. Lingkungan yang akan kami gambarkan adalah sebagai berikut:

Skema server aplikasi

Langkah 0: Replikasi server

Dalam contoh kami, kami menggunakan dua server backend untuk setiap aplikasi, tetapi kami dapat memasukkan sebanyak yang diperlukan. Sangat penting untuk memastikan konsistensi, sehingga saat terhubung ke server aplikasi, kami selalu melihat yang sama dan semua data yang disimpan dalam aplikasi tidak hilang. Untuk mencapai ini, replikasi sesi dalam server harus diatur. Kami menyebutnya langkah 0 karena ini harus dilakukan di server aplikasi.

Kucing jantan menyediakan replikasi sesi built-in-memory: DeltaManager serta Pengelola backup. Perbedaan utama antara kedua replikator ini, adalah itu DeltaManager lebih lambat, tetapi lebih dapat diandalkan jika terjadi kegagalan.

JBoss juga menyediakan cara sederhana untuk mengaktifkan replikasi sesi: dengan menandai aplikasi sebagai dapat didistribusikan di web.xml deskriptor.

Replikasi layanan untuk IIS dapat dicapai dengan menggunakan DFSR (Replikasi Sistem File Terdistribusi).

Langkah 1: Buat IP virtual

Setelah Zevenet Load Balancer diinstal, diperlukan untuk membuat IP virtual baru, dari menu utama, pilih Jaringan-> Antarmuka Virtual-> Tindakan-> Buat

Temukan antarmuka fisik tempat Anda ingin membuat IP virtual

 

Ketik nama dan alamat IP virtual baru Anda. Kemudian Simpan dengan mengklik tombol "Buat".

Langkah 2: Buat http farm

Perkebunan atau kluster adalah kumpulan server komputer yang menyediakan fungsionalitas server yang meningkatkan kemampuannya secara signifikan. Padahal kami menggunakan istilah itu kebun serta kelompok sebagai sinonim, ada sedikit perbedaan di antara mereka. Ketika berbicara tentang a kelompok, redundansi tersirat, tetapi ketika berbicara tentang a kebun, mungkin ada atau tidak ada redundansi. Dalam kasus kami, karena kami akan memiliki toleransi terhadap konfigurasi kegagalan, kami dapat berbicara tentang pertanian atau klaster sebagai sinonim.

Dengan cara ini, dengan menyiapkan kumpulan server aplikasi, kami akan meningkatkan kinerja dan toleran terhadap kegagalan, yang sangat penting untuk ketersediaan tinggi. Untuk mencapai ini, pergi ke LSLB-> Pertanian-> Buat

Pilih nama dan HTTP sebagai profil. Kami memilih profil http karena ini adalah pilihan terbaik untuk layanan web karena kami dapat menyediakan opsi alih konten di bawah IP dan port virtual yang sama.

Dua opsi lagi akan ditampilkan. Pilih IP virtual yang dibuat pada langkah 1 dan port (dalam contoh kita memilih 80, karena ini adalah default untuk protokol HTTP) dan klik pada Hemat tombol.

Langkah 3: Tambahkan layanan

Ide utamanya adalah untuk melayani aplikasi yang berbeda dari server aplikasi yang berbeda dari IP dan port Virtual yang sama. Jadi, setelah tambak telah dibuat, kami harus mengeditnya untuk menambahkan layanan baru. Dalam contoh kami, kami akan menyiapkan tiga layanan. Satu untuk setiap server aplikasi. Silakan klik tombol edit pertanian.

Beberapa detail tambak dapat diedit, dalam contoh ini kita akan menetapkan nilai default dan layanan.

Pada screenshot di atas kita miliki Menambahkan layanan dengan nama layanan "app1".

 

Karena kita akan mengakses ketiga layanan melalui tambak yang sama, kita perlu membedakan antara layanan ini. Untuk melakukan ini, kita dapat menetapkan nilai Pola URL. Bidang ini memungkinkan untuk menentukan layanan web sesuai dengan URL yang diminta klien melalui pola URL tertentu. Dalam contoh kita, kita akan mengetik ^ / app1. *, ^ / app2. * serta ^ / app3. *. Klik pada memodifikasi untuk menerapkan perubahan.

Memperhatikan bahwa backend harus menemukan alamatnya http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (dalam contoh kita http://192.168.56.200/app1), untuk menjamin ini, konteksnya harus diatur dalam aplikasi Anda. Dalam contoh kita, kita akan mengatur konteksnya / app1 untuk Kucing jantan, / app2 untuk Jboss serta / app3 untuk IIS. itu Konteks mewakili aplikasi web yang berjalan dalam host virtual tertentu. Dalam kasus khusus IIS, konteks disebut sebagai aplikasi.

Dalam contoh ini, kami memiliki dua server backend per aplikasi. Kami memilih IP, port (8080 default untuk Kucing jantan serta JBoss, dan 80 untuk IIS), batas waktu dan berat dan klik simpan backend tombol.

Kami ingin menghindari pergantian server: jika selama sesi kami beralih dari satu server ke server lainnya, akan ada efisiensi, data, dan bahkan kehilangan komunikasi. Untuk menghindari ini Sesi ketekunan harus dikonfigurasikan. Kami akan memilih untuk mempertahankan sesi demi sesi id, jadi ini berarti bahwa selama sesi, kami hanya akan terhubung ke satu server.

Dalam parameter global layanan sekarang kita dapat mengubah bidang sesi persistensi menjadi COOKIE: cookie tertentu

memilih JSESIONID sebagai pengidentifikasi sesi kegigihan untuk Tomcat dan Jboss dan SessionID untuk IIS, lalu klik Perbarui di bagian bawah halaman.

 

Sekarang, di bawah tambak yang sama kami telah 'menambahkan 2 lebih banyak layanan dengan cara yang sama daripada app1 untuk app2 dan app3, termasuk cookie persistensi untuk JBoss (default disebut JSESIONID) dan IIS (cookie default untuk ASP.NET adalah ASPXAUTH), masing-masing tetapi Anda dapat menggunakan cookie yang diperlukan oleh aplikasi. Setiap layanan di tambak memiliki backend sendiri yang dapat dibagi antara tambak atau layanan tambak.

Perhatikan bahwa, urutan layanan penting untuk mencocokkan pola URL yang benar.

Akhirnya, kita harus menerapkan perubahan dengan memulai kembali peternakan.

Selamat! Anda telah mengkonfigurasi server aplikasi Anda dalam ketersediaan tinggi. Anda dapat mengaksesnya dengan mengetik http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (dalam contoh kita http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).

Langkah 4: Pemeriksaan lanjutan

Kami sekarang akan mengatur wali pertanian untuk melakukan pemeriksaan kesehatan lanjutan ke backend memastikan bahwa mereka sudah siap, berjalan dan perilaku aplikasi yang benar, bukan hanya pemeriksaan port TCP. Silakan temukan Penjaga Pertanian dalam Layanan Anda, kami telah menyiapkannya di langkah 3. Klik Gunakan FarmGuardian untuk memeriksa Server Backend, Anda juga dapat memodifikasi waktu antara cek dan akhirnya, di menu Memerintahkan untuk memeriksa kotak teks, ketikkan perintah berikut.

check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PORT -s '</html>'

Akhirnya, klik Perbarui di bagian bawah halaman.

 

Perintah check_http menguji koneksi HTTP dengan host yang ditentukan. Dalam kasus kami, kami menggunakan opsi berikut:

-SAYA HOST: Token HOST akan digantikan oleh alamat IP backend yang ditentukan.
-w 10: waktu respons untuk menghasilkan status peringatan: 10 detik
-c 10: waktu respons ke status kritis: 10 detik
-t 10: 10 detik sebelum waktu koneksi habis
-e 200: mengharapkan string 200 dalam status respons server
-p PORT: PORT token akan digantikan oleh port backend yang ditentukan.
-s ' ': string yang diharapkan dalam konten adalah ' '

Jadi apa yang akan dilakukan perintah ini pada dasarnya adalah memeriksa bahwa kita mendapatkan respons 200 OK, dan bahwa perintah respons berisi string ' '. Kami memilih string ini karena berada di akhir respons, dengan cara ini kami dapat menjamin bahwa kami mendapatkan jawaban lengkap dari backend.

Langkah 5: Keamanan tinggi

Komunikasi yang aman dapat dengan mudah diatur dengan Zevenet Load Balancer, jadi langkah selanjutnya adalah mengaktifkan pendengar HTTPS: Edit parameter global pertanian layar, silakan ubah pendengar pertanian dari HTTP ke HTTPS dan Virtual Port ke 443.

Sekarang, layanan dapat diakses dengan mengetik https://[Your_virtual_ip]/[yourappservice] di browser Anda.

Komunikasi aman sekarang berjalan, tetapi kita bisa melangkah lebih jauh dengan mengkonfigurasi parameter HTTPS: dalam parameter global farm, cari Pengaturan HTTPS bagian. Kita bisa mengubah Cipher untuk Keamanan TINGGI.

Field cipher digunakan untuk membuat daftar cipher yang diterima oleh koneksi SSL untuk mengeraskan koneksi SSL. Dengan memilih Keamanan TINGGI, kami akan mengatur secara default cipher.

kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED

Pilihan lain adalah Sertifikat HTTPS tersedia: daftar sertifikat akan ditampilkan untuk dipilih untuk tambak saat ini (hanya untuk tambak HTTP, yang merupakan kasus kami). Kita dapat memilih satu dari daftar dan klik menambahkan. Akhirnya, klik memodifikasi dan mulai kembali pertanian untuk menerapkan perubahan.

Untuk informasi lebih lanjut, silakan lihat Peternakan profil HTTP.

HTTPS juga dapat diaktifkan di server aplikasi Anda, jika ini masalahnya, Anda harus mengaktifkan opsi Backend HTTPS.

Bagikan ke:

Dokumentasi di bawah ketentuan Lisensi Dokumentasi Bebas GNU.

Apakah artikel ini berguna?

Artikel terkait