Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan web?

Sep 05, 2023 am 08:12 AM
nginx pelayan proksi pengimbangan beban

Bagaimana untuk menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan web?

Tinjauan:
Dengan perkembangan pesat Internet dan penggunaan aplikasi Web yang meluas, cara untuk meningkatkan prestasi dan kebolehskalaan perkhidmatan Web telah menjadi isu penting yang dihadapi oleh pembangun dan pentadbir sistem . Nginx ialah HTTP berprestasi tinggi dan pelayan proksi terbalik Ia boleh membantu kami merealisasikan pengedaran permintaan dan pengimbangan beban perkhidmatan Web, dan meningkatkan keupayaan pemprosesan serentak dan kestabilan aplikasi Web. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk pengedaran permintaan dan pengimbangan beban, dan menyediakan beberapa contoh kod praktikal.

  1. Pasang Nginx
    Pertama, kita perlu memasang pelayan Nginx. Pada sistem Linux, ia boleh dipasang melalui alat pengurusan pakej. Mengambil Ubuntu sebagai contoh, anda boleh melaksanakan arahan berikut untuk memasang Nginx:

    sudo apt-get update
    sudo apt-get install nginx
    Salin selepas log masuk
  2. Konfigurasi proksi terbalik
    Secara lalai, Nginx akan mendengar port 80 dan adakah permintaan HTTP akan diproksikan ke port tempatan 80. Kami boleh mengkonfigurasi proksi terbalik dengan mengubah suai fail konfigurasi Nginx /etc/nginx/nginx.conf. Berikut ialah contoh konfigurasi mudah: /etc/nginx/nginx.conf来配置反向代理。以下是一个简单的配置示例:

    http {
     ...
     server {
         listen 80;
         server_name example.com;
         
         location / {
             proxy_pass http://backend_servers;
         }
     }
     
     upstream backend_servers {
         server backend1.example.com;
         server backend2.example.com;
     }
    }
    Salin selepas log masuk

    以上配置中,server_name指定了代理服务器对应的域名,location指定了请求的路径,proxy_pass指定了要代理的后端服务器地址。upstream指令定义了一组后端服务器。

  3. 实现负载均衡
    Nginx提供了多种负载均衡算法,我们可以根据实际需求选择合适的算法。以下是一些常用的负载均衡算法:
  • 轮询(round-robin):默认的负载均衡算法,依次将请求分发到后端服务器上。
  • IP哈希(ip_hash):根据客户端的IP地址进行哈希计算,将同一个客户端的请求发送到同一个后端服务器上。
  • 最少连接(least_conn):将请求发送到连接数最少的后端服务器上。

我们可以在upstream块中使用server指令指定每个后端服务器以及其权重。以下是一个使用轮询算法的示例:

upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
}
Salin selepas log masuk

在以上示例中,Nginx会将请求依次发送到backend1.example.combackend2.example.com

  1. 添加健康检查
    为了保证后端服务器的可用性,我们可以配置Nginx进行健康检查。以下是一个简单的健康检查配置示例:

    http {
     ...
     upstream backend_servers {
         server backend1.example.com;
         server backend2.example.com;
    
         health_check interval=5s;
         health_check_timeout 2s;
         health_check_status 200;
     }
    }
    Salin selepas log masuk

    以上配置中,health_check指令定义了健康检查的相关参数,interval指定了两次健康检查之间的间隔时间,health_check_timeout指定了健康检查的超时时间,health_check_status

    http {
        server {
            listen 80;
            server_name example.com;
            
            location / {
                proxy_pass http://backend_servers;
            }
        }
        
        upstream backend_servers {
            server backend1.example.com;
            server backend2.example.com;
        }
        
        upstream backend_servers {
            server backend1.example.com weight=3;
            server backend2.example.com weight=2;
        }
        
        upstream backend_servers {
            server backend1.example.com;
            server backend2.example.com backup;
        }
        
        upstream backend_servers {
            server backend1.example.com;
            server backend2.example.com max_fails=3 fail_timeout=10s;
            server backend3.example.com;
        }
        
        upstream backend_servers {
            server backend1.example.com;
            server backend2.example.com;
    
            health_check interval=5s;
            health_check_timeout 2s;
            health_check_status 200;
        }
    }
    Salin selepas log masuk
    Dalam konfigurasi di atas, server_name menentukan nama domain yang sepadan dengan pelayan proksi dan location menentukan laluan yang diminta , proxy_pass menentukan alamat pelayan bahagian belakang untuk diproksi. Arahan upstream mentakrifkan satu set pelayan bahagian belakang.

  2. Mencapai pengimbangan beban
  3. Nginx menyediakan pelbagai algoritma pengimbangan beban, dan kita boleh memilih algoritma yang sesuai mengikut keperluan sebenar. Berikut ialah beberapa algoritma pengimbangan beban yang biasa digunakan:
  • Round-robin: Algoritma pengimbangan beban lalai, yang mengedarkan permintaan kepada pelayan bahagian belakang secara bergilir-gilir.
  • IP cincang (ip_hash): Pengiraan cincang dilakukan berdasarkan alamat IP klien dan permintaan klien yang sama dihantar ke pelayan hujung belakang yang sama.
  • Sambungan paling sedikit (least_conn): Hantar permintaan ke pelayan hujung belakang dengan bilangan sambungan paling sedikit.
Kami boleh menentukan setiap pelayan bahagian belakang dan beratnya menggunakan arahan server dalam blok upstream. Berikut ialah contoh menggunakan algoritma pengundian:

rrreee
Dalam contoh di atas, Nginx akan menghantar permintaan ke backend1.example.com dan backend2.example dalam urutan .com.

    Tambah pemeriksaan kesihatan

    Untuk memastikan ketersediaan pelayan bahagian belakang, kami boleh mengkonfigurasi Nginx untuk melakukan pemeriksaan kesihatan. Berikut ialah contoh konfigurasi pemeriksaan kesihatan mudah:

    rrreee#🎜🎜#Dalam konfigurasi di atas, arahan health_check mentakrifkan parameter yang berkaitan bagi pemeriksaan kesihatan dan selang code> menentukan Selang antara dua pemeriksaan kesihatan, <code>health_check_timeout menentukan tamat masa pemeriksaan kesihatan dan health_check_status menentukan kod status respons pemeriksaan kesihatan. #🎜🎜##🎜🎜##🎜🎜#Optimumkan konfigurasi Nginx#🎜🎜#Untuk meningkatkan prestasi dan kebolehskalaan Nginx, kami boleh mengoptimumkan konfigurasinya. Berikut ialah beberapa strategi pengoptimuman biasa: #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Dayakan pemampatan gzip: Dengan mendayakan pemampatan gzip, anda boleh mengurangkan jumlah data yang dihantar melalui rangkaian dan meningkatkan kelajuan tindak balas. #🎜🎜##🎜🎜#Laraskan bilangan proses kerja dan bilangan maksimum sambungan: Mengikut konfigurasi perkakasan pelayan dan bilangan lawatan ke tapak web, laraskan bilangan proses kerja Nginx dan bilangan maksimum sambungan ke menyediakan keupayaan pemprosesan serentak yang lebih baik. #🎜🎜##🎜🎜#Caching sumber statik: Untuk sumber statik yang tidak kerap berubah, kami boleh menggunakan fungsi caching Nginx untuk mengurangkan permintaan ke pelayan bahagian belakang. #🎜🎜##🎜🎜#Dayakan penyulitan SSL: Jika anda perlu menyulitkan data untuk penghantaran, anda boleh mendayakan penyulitan SSL. #🎜🎜##🎜🎜##🎜🎜#Ringkasan: #🎜🎜#Artikel ini memperkenalkan cara menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan Web. Melalui konfigurasi dan pengoptimuman yang betul, kami boleh meningkatkan prestasi, kestabilan dan kebolehskalaan aplikasi web. Menggunakan Nginx untuk pengimbangan beban dan proksi terbalik bukan sahaja mudah dan mudah, tetapi juga mempunyai prestasi yang sangat baik dan fungsi yang berkuasa Ia adalah pilihan yang baik untuk melaksanakan perkhidmatan web yang tersedia. #🎜🎜##🎜🎜#Contoh kod rujukan: #🎜🎜#rrreee#🎜🎜#Contoh kod di atas boleh digunakan sebagai rujukan, dan boleh dikonfigurasi dan diubah suai mengikut keperluan dalam penggunaan sebenar. #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pelayan proksi Nginx untuk melaksanakan pengedaran permintaan dan pengimbangan beban perkhidmatan web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Apr 21, 2024 am 07:22 AM

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Aplikasi strategi pengimbangan beban dalam pengoptimuman prestasi rangka kerja Java Aplikasi strategi pengimbangan beban dalam pengoptimuman prestasi rangka kerja Java May 31, 2024 pm 08:02 PM

Strategi pengimbangan beban adalah penting dalam rangka kerja Java untuk pengedaran permintaan yang cekap. Bergantung pada situasi konkurensi, strategi berbeza mempunyai prestasi berbeza: Kaedah pengundian: prestasi stabil di bawah konkurensi rendah. Kaedah undian berwajaran: Prestasi adalah serupa dengan kaedah pengundian di bawah konkurensi rendah. Bilangan kaedah sambungan paling sedikit: prestasi terbaik di bawah keselarasan tinggi. Kaedah rawak: mudah tetapi prestasi lemah. Hashing Konsisten: Mengimbangi beban pelayan. Digabungkan dengan kes praktikal, artikel ini menerangkan cara memilih strategi yang sesuai berdasarkan data prestasi untuk meningkatkan prestasi aplikasi dengan ketara.

Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP May 03, 2024 am 08:54 AM

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.

Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Apr 27, 2024 am 08:34 AM

Tugas penting untuk pentadbir Linux adalah untuk melindungi pelayan daripada serangan atau akses haram. Secara lalai, sistem Linux disertakan dengan firewall yang dikonfigurasikan dengan baik, seperti iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), dsb., yang boleh menghalang pelbagai serangan. Mana-mana mesin yang disambungkan ke Internet adalah sasaran yang berpotensi untuk serangan berniat jahat. Terdapat alat yang dipanggil Fail2Ban yang boleh digunakan untuk mengurangkan akses haram pada pelayan. Apakah Fail2Ban? Fail2Ban[1] ialah perisian pencegahan pencerobohan yang melindungi pelayan daripada serangan kekerasan. Ia ditulis dalam bahasa pengaturcaraan Python

Mari bersama saya untuk mempelajari Linux dan memasang Nginx Mari bersama saya untuk mempelajari Linux dan memasang Nginx Apr 28, 2024 pm 03:10 PM

Hari ini, saya akan membawa anda memasang Nginx dalam persekitaran Linux Sistem Linux yang digunakan di sini ialah CentOS7.2 Sediakan alat pemasangan 1. Muat turun Nginx dari laman web rasmi Nginx. Versi yang digunakan di sini ialah: 1.13.6.2 Muat naik Nginx yang dimuat turun ke Linux Di sini, direktori /opt/nginx digunakan sebagai contoh. Jalankan "tar-zxvfnginx-1.13.6.tar.gz" untuk nyahmampat. 3. Tukar ke direktori /opt/nginx/nginx-1.13.6 dan jalankan ./configure untuk konfigurasi awal. Jika gesaan berikut muncul, ini bermakna PCRE tidak dipasang pada mesin, dan Nginx perlu melakukannya

Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Apr 23, 2024 pm 05:50 PM

Selepas yum memasang keepalived, konfigurasikan fail konfigurasi keepalived Ambil perhatian bahawa dalam fail konfigurasi keepalived bagi induk dan sandaran, nama kad rangkaian ialah nama kad rangkaian VIP yang tersedia Biasanya dalam ketersediaan tinggi. Persekitaran LAN Terdapat lebih banyak lagi, jadi VIP ini adalah IP intranet dalam segmen rangkaian yang sama dengan kedua-dua mesin. Jika digunakan dalam persekitaran rangkaian luaran, tidak kira sama ada ia berada pada segmen rangkaian yang sama, asalkan pelanggan boleh mengaksesnya. Hentikan perkhidmatan nginx dan mulakan perkhidmatan keepalived Anda akan melihat bahawa keepalived menarik perkhidmatan nginx untuk dimulakan.

Akses fail tapak WordPress adalah terhad: Mengapa fail .txt saya tidak boleh diakses melalui nama domain? Akses fail tapak WordPress adalah terhad: Mengapa fail .txt saya tidak boleh diakses melalui nama domain? Apr 01, 2025 pm 03:00 PM

Akses fail tapak WordPress adalah terhad: Menyelesaikan masalah sebab mengapa fail .txt tidak dapat diakses baru -baru ini. Sebilangan pengguna menghadapi masalah ketika mengkonfigurasi nama domain perniagaan program mini: � ...

See all articles