Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Perbincangan mendalam tentang cara proksi terbalik dan pengimbangan beban Nginx digunakan dengan cekap dalam seni bina perkhidmatan mikro

Perbincangan mendalam tentang cara proksi terbalik dan pengimbangan beban Nginx digunakan dengan cekap dalam seni bina perkhidmatan mikro

王林
王林asal
2023-08-05 20:37:021024semak imbas

Perbincangan mendalam tentang penggunaan proksi terbalik dan pengimbangan beban Nginx yang cekap dalam seni bina perkhidmatan mikro

Kata Pendahuluan:
Dalam seni bina perkhidmatan mikro, saling bergantung antara perkhidmatan dan pertumbuhan trafik yang pesat membawa cabaran kepada penggunaan dan pengurusan perkhidmatan sebagai cabaran besar . Untuk menyelesaikan masalah ini, Nginx, sebagai pelayan web berprestasi tinggi dan proksi terbalik, telah menjadi salah satu alat penting untuk penempatan dan pengurusan dalam seni bina perkhidmatan mikro dengan menyediakan pengimbangan beban dan fungsi ketersediaan tinggi. Artikel ini akan membincangkan penggunaan proksi terbalik dan pengimbangan beban Nginx yang cekap dalam seni bina perkhidmatan mikro, dan memberikan contoh kod yang sepadan.

1. Proksi terbalik Nginx
1.1 Apakah proksi terbalik
Proksi terbalik bermaksud menghantar permintaan daripada klien ke pelayan dan mengembalikan respons daripada pelayan kepada pelanggan. Tidak seperti proksi hadapan, proksi hadapan ialah pelayan proksi yang menghantar permintaan daripada klien ke pelayan sasaran dan mengembalikan respons kepada klien. Melalui proksi terbalik, kami boleh menyembunyikan struktur dalaman pelayan, meningkatkan keselamatan, dan mencapai pengimbangan beban dan ketersediaan tinggi.

1.2 Nginx melaksanakan proksi terbalik
Untuk melaksanakan proksi terbalik dalam Nginx, kita perlu mengkonfigurasi blok pelayan proksi terbalik Nginx seperti berikut:

http {
  upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
  }

  server {
    listen 80;
 
    location / {
      proxy_pass http://backend;
    }
  }
}

Dalam contoh ini, kami mentakrifkan fail yang dipanggil "backend" Kluster pelayan mengandungi alamat tiga pelayan bahagian belakang. Kemudian, dalam "lokasi /", kami menggunakan arahan proxy_pass untuk memajukan permintaan kepada kluster pelayan bahagian belakang.

2. Nginx Load Balancing
2.1 Apa itu load balancing
Load balancing merujuk kepada pengagihan permintaan kepada berbilang pelayan untuk meningkatkan prestasi dan kebolehpercayaan. Dengan mengagihkan trafik secara sama rata kepada berbilang pelayan, beban pada satu pelayan boleh dikurangkan dan kelajuan tindak balas sistem serta kebolehskalaan boleh dipertingkatkan.

2.2 Nginx melaksanakan pengimbangan beban
Dalam Nginx, mencapai pengimbangan beban memerlukan penggunaan arahan huluan dan algoritma pengimbangan beban yang sepadan. Berikut ialah contoh konfigurasi pengimbangan beban mudah:

http {
  upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
  }

  server {
    listen 80;
 
    location / {
      proxy_pass http://backend;
    }
  }
}

Dalam contoh ini, kami menggunakan algoritma "least_conn" untuk mencapai pengimbangan beban. Algoritma ini akan menghantar permintaan ke pelayan bahagian belakang dengan sambungan semasa yang paling sedikit. Dengan menggunakan algoritma pengimbangan beban ini, kami boleh memastikan bahawa beban pelayan diagihkan sama rata.

3. Kaedah penggunaan Nginx dalam seni bina perkhidmatan mikro
Dalam seni bina perkhidmatan mikro, perkhidmatan biasanya digunakan dalam cara kontena, dan setiap perkhidmatan dijalankan dalam bekas bebas. Untuk mencapai penggunaan yang cekap, kami boleh menggunakan Nginx sebagai proksi terbalik bebas dan perkhidmatan pengimbangan beban untuk membimbing trafik ke bekas perkhidmatan yang berbeza.

3.1 Menggunakan Nginx dengan Docker
Pertama, kita perlu menggunakan bekas Nginx dalam Docker. Kita boleh menggunakan arahan berikut untuk menarik dan menjalankan bekas Nginx:

docker pull nginx
docker run -d -p 80:80 --name nginx-container nginx

Perintah ini akan menarik imej Nginx terkini dan memulakan contoh Nginx di dalam bekas. Kami kemudiannya boleh mengakses bekas Nginx dengan mengakses port 80 mesin hos.

3.2 Konfigurasikan proksi terbalik Nginx dan pengimbangan beban
Dalam bekas Nginx, kita perlu mengedit fail konfigurasi Nginx untuk melaksanakan proksi terbalik dan pengimbangan beban. Mula-mula, kita perlu masuk ke dalam bekas Nginx:

docker exec -it nginx-container /bin/bash

Kemudian, kita boleh menggunakan vi atau editor lain untuk mengedit fail konfigurasi Nginx (/etc/nginx/nginx.conf). Dalam fail konfigurasi, ikuti contoh sebelumnya dan konfigurasi proksi terbalik dan peraturan imbangan beban. Simpan fail dan muat semula konfigurasi Nginx:

nginx -s reload

Dengan cara ini, bekas Nginx dikonfigurasikan dengan proksi terbalik dan peraturan pengimbangan beban, dan boleh memajukan permintaan ke bekas perkhidmatan mikro yang berbeza mengikut konfigurasi.

Kesimpulan:
Melalui pengenalan artikel ini, kami telah mengetahui cara proksi terbalik dan pengimbangan beban Nginx digunakan dengan cekap dalam seni bina perkhidmatan mikro. Dengan menggunakan proksi terbalik dan fungsi pengimbangan beban yang disediakan oleh Nginx, kami boleh mencapai ketersediaan dan kebolehskalaan perkhidmatan yang tinggi. Saya harap artikel ini dapat membantu anda dalam kerja penempatan dan pengurusan dalam seni bina perkhidmatan mikro.

Pautan rujukan:

  • https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/
  • https://docs.nginx.com/nginx/ admin-guide/load-balancer/http-load-balancer/

Contoh kod diberikan dalam teks.

Atas ialah kandungan terperinci Perbincangan mendalam tentang cara proksi terbalik dan pengimbangan beban Nginx digunakan dengan cekap dalam seni bina perkhidmatan mikro. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn