[Fungsi pelaksanaan]
1. Konfigurasikan tiga pelayan
2 Gunakan kod perkhidmatan yang sama pada tiga pelayan
3. Gunakan nginx untuk mencapai pengimbangan beban
[Idea pelaksanaan]
Pengimbang beban nginx kami akan digunakan pada pelayan interaktif dan dikonfigurasikan dengan sambungan dua pelayan yang lain, semua permintaan secara langsung akses antara muka perkhidmatan nginx, dan kemudian pengimbang beban nginx akan memilih port pelayan panggilan sebenar.
[Persekitaran pembangunan dan penggunaan]
Persekitaran pembangunan: windows 7 x64 sp1 versi Inggeris
Visualstudio 2017
Persekitaran penyebaran Alibaba Cloud ecs instance windows server 2012 x64
iis 7.0
[Teknologi yang diperlukan]
asp.net webapi2
[Proses pelaksanaan]
Gunakan asp.net webapi2 untuk menulis antara muka yang hanya mengembalikan json Untuk menunjukkan bahawa kami memanggil antara muka pada pelayan yang berbeza, kami menjana tiga antara muka dalam bentuk digital dan digunakan ke iis pada tiga pelayan masing-masing.
public ihttpactionresult gettest() { //throw new exception_dg_internationalization(1001); string ip = request.getipaddressfromrequest(); return ok("test api . client ip address is -> "+ip+" the server is ===== 333 ====="); }
Nombor di belakang tiga pelayan yang saya gunakan masing-masing ialah 111, 222, 333
Nota: return ok ialah format pulangan tersuai saya Untuk kod mudah tertentu, anda boleh terus mengembalikan json() ;
request.getipaddressfromrequest(); ialah kaedah lanjutan saya untuk mendapatkan alamat IP. Sila laksanakan mengikut situasi anda sendiri.
[Ujian Sistem]
Selepas kami menjana tiga kod latar belakang, kami mengerahkannya ke tiga pelayan masing-masing.
Untuk memastikan maklumat pelayan sulit, semua alamat ip saya di bawah akan dikenal pasti oleh ip_a, ip_b, ip_c
Yang ketiga ialah pelayan di mana kami akan menggunakan nginx:
Selepas penggunaan, kami mengkonfigurasi nginx:
Muat turun nginx:
Kemudian nyahzip ke pelayan ip_c dan buka nginx.conf dalam folder conf
Edit kandungan seperti berikut
Kemudian kami memulakan perkhidmatan:
arahan cmd untuk beralih ke direktori root nginx
Dengan cara ini, walaupun perkhidmatan dimulakan... Sekadar aduan, kenapa tidak digesa supaya perkhidmatan dimulakan dengan jayanya... Nah, ia tidak berperikemanusiaan!
Kemudian kami membuka sebarang alat ujian antara muka dan melaksanakan permintaan yang sama tiga kali:
Permintaan 1,
Permintaan 2,
Permintaan 3,
Ia boleh didapati bahawa antara muka perkhidmatan latar belakang yang kami panggil tidak sama untuk setiap permintaan Ini memastikan bahawa apabila sejumlah besar pelanggan mengakses alamat pelayan yang sama, tekanan satu pelayan boleh diperuntukkan kepada beberapa pelayan, mencapai beban tujuan.
Atas ialah kandungan terperinci Analisis contoh konfigurasi pengimbangan beban Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!