Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx?

Bagaimana untuk melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx?

PHPz
PHPzasal
2023-09-05 17:07:441444semak imbas

Bagaimana untuk melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx?

Bagaimana untuk melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx?

Dalam aplikasi Internet moden, pengimbangan beban merupakan pertimbangan penting Ia boleh membantu kami mencapai peruntukan dan penggunaan sumber di antara berbilang pelayan dan meningkatkan ketersediaan sistem dan kapasiti beban. Perkhidmatan web yang dijalankan dalam bekas Docker juga boleh dimuatkan secara seimbang melalui pelayan proksi Nginx. Artikel ini akan memperkenalkan cara melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx.

Pertama, kami perlu menyediakan persekitaran kontena Docker untuk menjalankan perkhidmatan web kami. Dalam contoh ini, kami akan menggunakan dua bekas untuk mensimulasikan situasi pengimbangan beban.

  1. Pasang Docker

Untuk menjalankan bekas Docker, kita perlu memasang Docker terlebih dahulu. Docker boleh dipasang melalui arahan berikut:

sudo apt-get update
sudo apt-get install docker.io
  1. Cipta dua bekas perkhidmatan web

Kami boleh menggunakan imej Docker untuk mencipta bekas perkhidmatan web. Di sini kami menggunakan imej Nginx yang mudah sebagai contoh.

docker run -d -p 8081:80 --name=web1 nginx
docker run -d -p 8082:80 --name=web2 nginx

Arahan di atas akan mencipta dua bekas, masing-masing dipetakan ke port 8081 dan 8082 tempatan, dan dinamakan web1 dan web2.

  1. Konfigurasikan pelayan proksi Nginx

Dalam penyelesaian pengimbangan beban kami, Nginx akan bertindak sebagai pelayan proksi dan memajukan permintaan pelanggan ke bekas perkhidmatan web bahagian belakang. Mari konfigurasikan Nginx sekarang.

Mula-mula, pasang Nginx:

sudo apt-get install nginx

Kemudian, edit fail konfigurasi Nginx /etc/nginx/nginx.conf: /etc/nginx/nginx.conf

user nginx;
worker_processes auto;
http {
    ...
    upstream backend {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
    }
    ...
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ...
}

在上述配置中,我们使用upstream指令定义了两个后端服务器:127.0.0.1:8081和127.0.0.1:8082。然后,在server指令中,我们使用proxy_pass指令将请求转发到后端服务器,并通过proxy_set_header指令设置了一些请求头。

  1. 重启Nginx服务

完成Nginx配置后,需要重启Nginx服务才能使配置生效。

sudo systemctl restart nginx
  1. 测试负载均衡

现在我们可以通过浏览器访问Nginx代理服务器,并观察负载均衡的效果。

在浏览器中输入http://example.comrrreee

Dalam konfigurasi di atas, kami menggunakan arahan huluan untuk menentukan dua jawatan Pelayan tamat: 127.0.0.1:8081 dan 127.0.0.1:8082. Kemudian, dalam arahan pelayan, kami memajukan permintaan ke pelayan bahagian belakang menggunakan arahan proxy_pass dan menetapkan beberapa pengepala permintaan melalui arahan proxy_set_header.

    Mulakan semula perkhidmatan Nginx

    Selepas melengkapkan konfigurasi Nginx, anda perlu memulakan semula perkhidmatan Nginx untuk konfigurasi berkuat kuasa.

    rrreee
      🎜Uji pengimbangan beban🎜🎜🎜Kini kita boleh mengakses pelayan proksi Nginx melalui pelayar dan melihat kesan pengimbangan beban. 🎜🎜Masukkan http://example.com ke dalam penyemak imbas dan muat semula halaman beberapa kali. Anda akan mendapati bahawa permintaan akan dimajukan sama rata ke dua bekas perkhidmatan web di bahagian belakang. 🎜🎜Pada ketika ini, kami telah berjaya melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx. 🎜🎜Ringkasan: 🎜🎜Pengimbangan beban boleh membantu kami mencapai peruntukan dan penggunaan sumber antara berbilang pelayan, meningkatkan ketersediaan sistem dan kapasiti beban. Melalui pelayan proksi Nginx, kami boleh mencapai pengimbangan beban perkhidmatan web dalam bekas Docker. Di atas adalah langkah dan kod sampel untuk melaksanakan pengimbangan beban melalui pelayan proksi Nginx. Harap artikel ini membantu anda! 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengimbangan beban perkhidmatan web dalam bekas Docker melalui pelayan proksi Nginx?. 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