Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengimbangan beban berbilang pelayan web?

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengimbangan beban berbilang pelayan web?

WBOY
WBOYasal
2023-09-05 12:30:46892semak imbas

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengimbangan beban berbilang pelayan web?

Bagaimana untuk menggunakan pelayan proksi Nginx dalam Docker untuk mencapai pengimbangan beban berbilang pelayan web?

Abstrak:
Dalam seni bina aplikasi web moden, pengimbangan beban adalah topik penting. Dengan mengedarkan trafik merentas berbilang pelayan, anda boleh meningkatkan ketersediaan sistem, prestasi dan kebolehskalaan. Artikel ini akan memperkenalkan cara menggunakan pelayan proksi Docker dan Nginx untuk mencapai pengimbangan beban berbilang pelayan web.

  1. Persediaan
    Pertama, kita perlu memasang Docker dan Nginx. Anda boleh mendapatkan panduan pemasangan yang sepadan di laman web rasmi.
  2. Buat berbilang pelayan web
    Sebelum kami melaksanakan pengimbangan beban, kami perlu mencipta berbilang pelayan web terlebih dahulu. Docker boleh digunakan untuk membuat berbilang contoh pelayan web. Berikut ialah contoh Dockerfile untuk mencipta imej pelayan web yang mudah.
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

Di sini, kami menggunakan imej rasmi yang disediakan oleh Nginx dan menyalin fail index.html dan nginx.conf ke lokasi yang sepadan. Dalam index.html, anda boleh meletakkan sebarang kandungan web yang anda ingin paparkan. Dalam nginx.conf, anda boleh mengkonfigurasi tetapan berkaitan Nginx.

  1. Konfigurasi pelayan proksi Nginx
    Seterusnya, kita perlu mengkonfigurasi pelayan proksi Nginx untuk mencapai pengimbangan beban. Cipta fail bernama nginx.conf dan tambahkan kandungan berikut pada fail tersebut.
http {
  upstream backend {
    server web1:80;
    server web2:80;
  }
  server {
    listen 80;
    location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
    }
  }
}

Di sini, kami mentakrifkan kumpulan pelayan huluan yang dipanggil backend, yang mengandungi alamat dua pelayan web. Dalam blok pelayan, kami mengikat port 80 ke pelayan proksi Nginx dan trafik proksi ke kumpulan pelayan bahagian belakang. Arahan proxy_set_header digunakan untuk menetapkan pengepala Hos permintaan kepada alamat pelayan.

  1. Jalankan berbilang pelayan web dan pelayan proksi Nginx
    Selepas melengkapkan konfigurasi, kami boleh menggunakan Docker untuk menjalankan berbilang contoh pelayan web dan satu contoh pelayan proksi Nginx.

Pertama, kita perlu membina imej pelayan web. Dalam direktori di mana imej terletak, jalankan arahan berikut.

docker build -t web-server .

Kemudian, kita boleh menjalankan berbilang contoh pelayan web. Jalankan arahan berikut dua kali untuk mencipta dua contoh.

docker run -d --name web1 web-server
docker run -d --name web2 web-server

Seterusnya, kita perlu mencipta contoh pelayan proksi Nginx. Jalankan arahan berikut.

docker run -d -p 80:80 --name nginx-proxy --link web1 --link web2 nginx

Di sini, kami telah menggunakan parameter --link untuk menyambungkan pelayan proksi Nginx kepada dua kejadian pelayan web.

  1. Uji Pengimbangan Beban
    Kini kami boleh menggunakan mana-mana pelayar web untuk menguji pengimbangan beban. Hanya masukkan alamat pelayan proksi Nginx dan trafik akan diedarkan kepada kedua-dua contoh pelayan web.

Dengan melihat log bekas pelayan web, kita dapat melihat cara permintaan diedarkan kepada kejadian yang berbeza.

docker logs web1
docker logs web2

Kesimpulan:
Dengan menggunakan pelayan proksi Docker dan Nginx, kami boleh mencapai pengimbangan beban berbilang pelayan web dengan mudah. Kaedah ini bukan sahaja mudah dan cekap, tetapi juga sangat fleksibel dan berskala. Saya harap artikel ini dapat membantu anda, terima kasih kerana membaca!

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk mencapai pengimbangan beban berbilang pelayan web?. 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