Aplikasi WebSocket membolehkan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Walaupun sambungan WebSocket digunakan, mekanisme pengurusan trafik yang berkesan masih diperlukan untuk mengelak daripada membebankan pelayan, mengakibatkan gangguan perkhidmatan dan tidak tersedia.
HAProxy ialah pengimbang beban percuma dan boleh dipercayai yang juga berfungsi sebagai proksi terbalik. Dengan mengkonfigurasi HAProxy untuk menyokong sambungan WebSocket, anda boleh menggunakan lebih baik ciri penghantaran data masa nyata WebSockets dan mengurangkan beban pelayan. Artikel ini akan menerangkan langkah terperinci untuk mengkonfigurasi HAProxy untuk menyokong sambungan WebSocket.
Melalui sambungan WebSocket, komunikasi antara pelayan dan pelanggan berterusan sehingga salah satu pihak menutup sambungan secara aktif. Untuk memastikan trafik boleh diagihkan sama rata ke pelayan lain apabila beban pelayan terlalu tinggi, pengimbang beban boleh digunakan. Dengan cara ini, pelanggan dan pelayan boleh mengekalkan sambungan berterusan dan menikmati persekitaran komunikasi kependaman rendah.
Langkah pertama dalam mengkonfigurasi HAProxy untuk sambungan WebSocket ialah mengesahkan bahawa HAProxy dipasang. Jika anda belum memasangnya lagi, ikut langkah ini untuk memasangnya:
$sudo apt—dapatkan pasang haproxy
Untuk membolehkan sambungan WebSocket melalui HAProxy, konfigurasi HAProxy perlu dilaraskan untuk menyokong sambungan WebSocket. Ini termasuk membuat perubahan pada bahagian "server" dan menyediakan bahagian "frontend" dan "backend".
Buka konfigurasi HAProxy menggunakan editor teks seperti yang ditunjukkan di bawah:
$sudo nano/etc/haproxy/haproxy.cfg
Dalam bahagian "Padam", ubah suainya seperti yang ditunjukkan dalam imej di bawah. Pertama, kami menyatakan bahawa kami menggunakan sambungan HTTP dan menentukan tempat untuk menghantar fail log. Seterusnya, kami menetapkan tamat masa untuk aktiviti yang berbeza. Sebagai contoh, tamat masa sambungan ialah jumlah maksimum masa yang diperlukan untuk menyambung ke pelayan. Jika masa maksimum dicapai, sambungan dianggap gagal dan boleh dicuba semula.
Untuk kes ini, kami menetapkan tamat masa sambungan kepada 5000 milisaat. Anda boleh melaraskan tamat masa berdasarkan situasi anda. Sesuaikan mereka dengan aplikasi anda, dengan mengingati tempoh sesi WebSocket dan berapa lama anda menjangkakan sesi itu akan hidup.
Seterusnya, kita perlu mencipta bahagian "frontend", di mana kita mengikat port yang digunakan untuk sambungan WebSocket dan pelayan backend yang dirujuk. Dalam kes ini, kami menentukan port 80 dan memberikan URL untuk mengakses halaman "Statistik" untuk memantau HAProxy kami. Akhir sekali, kami mentakrifkan bahagian belakang yang dirujuk dalam pengimbangan beban.
Di bahagian "Backend", kami menggunakan penjadualan round-robin untuk mengagihkan beban. "pilihan ke hadapan untuk" menentukan bahawa HAProxy menyertakan pengepala "X-Forward-For" apabila menghantar permintaan sambungan, yang mengandungi alamat IP klien. Dengan cara ini pelayan bahagian belakang akan mendapat IP klien yang betul.
"Pilihan http_server_close" mengehadkan sumber dengan menghapuskan sebarang sambungan terbiar yang menggunakan sumber pelayan. Walaupun sambungan WebSocket tahan lama, kita mesti menyemak sama ada terdapat sambungan terbiar tahan lama dan menutupnya untuk mengelakkan pembaziran sumber yang tidak perlu.
Akhir sekali, tambahkan pelayan bahagian belakang yang akan digunakan untuk mengagihkan trafik. Pastikan anda memberikan pelayan anda alamat IP yang betul dan gantikan alamat IP dalam imej di bawah:
HAProxy anda kini dikonfigurasikan untuk sambungan WebSocket. Simpan perubahan dan tutup fail.
Sebelum memulakan semula HAProxy, kami boleh menjalankan arahan pantas untuk menyemak sama ada fail itu sah dan tiada ralat. Untuk melakukan ini, jalankan arahan berikut:
$sudo haproxy-c-f/etc/haproxy/haproxy.cfg
Selepas fail sah, mulakan semula perkhidmatan HAProxy.
Itu sahaja. Anda mengkonfigurasi HAProxy untuk sambungan WebSocket. Anda boleh menguji sambungan untuk memastikan semua trafik WebSocket dimajukan dengan betul.
Mengkonfigurasi sambungan HAProxy untuk WebSocket ialah penyelesaian yang popular, terutamanya dalam kalangan pentadbir web. Artikel ini menghuraikan proses secara terperinci, memberikan langkah dan contoh untuk memastikan anda selesa mengikuti dan menguruskan untuk melaksanakan proses yang sama dalam kes anda. Lakukan setiap langkah untuk memastikan anda memahami konsep dan proses melaksanakannya.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi HAProxy untuk sambungan WebSocket. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!