Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  NGINX PM2 VPS: Bina kluster perkhidmatan aplikasi ketersediaan tinggi

NGINX PM2 VPS: Bina kluster perkhidmatan aplikasi ketersediaan tinggi

WBOY
WBOYasal
2023-09-28 11:09:02949semak imbas

NGINX PM2 VPS: 构建高可用性的应用服务集群

NGINX PM2 VPS: Untuk membina kluster perkhidmatan aplikasi ketersediaan tinggi, contoh kod khusus diperlukan

Pengenalan:
Dalam era Internet hari ini, ketersediaan tinggi telah menjadi salah satu elemen penting untuk membina perkhidmatan aplikasi yang stabil dan boleh dipercayai. Untuk mencapai ketersediaan yang tinggi, banyak perusahaan dan pembangun telah mula memilih untuk menggunakan kluster untuk menggunakan aplikasi mereka. Dalam kelompok, menggunakan NGINX dan PM2 sebagai pengimbang beban dan alat pengurusan proses adalah pilihan yang sangat biasa. Artikel ini akan memperkenalkan cara menggunakan NGINX, PM2 dan VPS untuk membina kluster perkhidmatan aplikasi ketersediaan tinggi dan memberikan contoh kod khusus.

1. Apakah itu NGINX dan PM2

  1. NGINX ialah pelayan web yang ringan dan berprestasi tinggi yang boleh berfungsi sebagai pelayan proksi terbalik, pengimbang beban, pelayan cache HTTP, dll. Melalui NGINX, kami boleh mengedarkan permintaan kepada berbilang pelayan aplikasi pada bahagian belakang, dengan itu meningkatkan kebolehpercayaan dan prestasi sistem.
  2. PM2 ialah alat pengurusan proses untuk aplikasi Node.js. Ia boleh membantu kami menguruskan permulaan, berhenti, mulakan semula dan log keluaran aplikasi Node.js. Melalui PM2, kami boleh memulakan semula aplikasi secara automatik apabila aplikasi keluar secara tidak normal, sekali gus memastikan ketersediaan perkhidmatan.

2. Bina proksi terbalik dan pengimbangan beban NGINX
Sebelum membina kluster perkhidmatan aplikasi ketersediaan tinggi, pertama sekali kita perlu membina proksi terbalik NGINX asas dan persekitaran pengimbangan beban. Berikut ialah contoh konfigurasi NGINX yang mudah:

http {
    upstream app_servers {
        server 127.0.0.1:3000;
        server 127.0.0.1:3001;
        server 127.0.0.1:3002;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://app_servers;
        }
    }
}

Dalam konfigurasi di atas, kami telah menentukan blok huluan yang dipanggil app_servers yang menyenaraikan alamat dan port pelayan aplikasi kami. NGINX akan mengedarkan permintaan kepada pelayan ini mengikut algoritma pengimbangan beban. Dengan mengkonfigurasi arahan proxy_pass, NGINX melaksanakan fungsi proksi terbalik dan memajukan permintaan klien ke pelayan aplikasi bahagian belakang melalui NGINX. app_servers的upstream块,其中列出了我们的应用服务器的地址和端口。NGINX会根据负载均衡算法将请求分发到这些服务器上。通过配置proxy_pass指令,NGINX实现了反向代理的功能,将客户端的请求通过NGINX转发到后端的应用服务器。

三、使用PM2管理Node.js应用进程
在构建了NGINX反向代理和负载均衡环境之后,我们需要使用PM2来管理我们的Node.js应用的进程。下面是一个简单的PM2配置示例:

module.exports = {
  apps : [
    {
      name      : "app",
      script    : "app.js",
      instances : "max",
      exec_mode : "cluster"
    }
  ]
}

在上面的配置中,我们定义了一个名为app的应用,指定了应用的入口文件为app.js。通过设置instancesmax以及exec_modecluster

3. Gunakan PM2 untuk mengurus proses aplikasi Node.js

Selepas membina proksi terbalik dan persekitaran pengimbangan beban NGINX, kami perlu menggunakan PM2 untuk mengurus proses aplikasi Node.js kami. Berikut ialah contoh konfigurasi PM2 yang mudah:

server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }

    location /status {
        stub_status on;
        allow 127.0.0.1;
        deny all;
    }
}

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

Dalam konfigurasi di atas, kami mentakrifkan aplikasi bernama app dan menentukan fail kemasukan aplikasi sebagai app.js code>. Dengan menetapkan <code>instance kepada max dan exec_mode kepada cluster, kami memberitahu PM2 untuk mencipta seberapa banyak proses untuk mencapai serentak tinggi keupayaan pemprosesan aplikasi.

4. Gunakan VPS untuk mencapai kluster ketersediaan tinggi

Berdasarkan perkara di atas, kami boleh menggunakan VPS untuk membina kluster perkhidmatan aplikasi ketersediaan tinggi untuk menyediakan perkhidmatan yang lebih stabil dan boleh dipercayai. Berikut ialah contoh kluster VPS mudah:

rrreee

Dalam konfigurasi di atas, kami menggunakan VPS sebagai pengimbang beban bahagian hadapan. Apabila permintaan masuk, VPS akan memajukan permintaan itu ke beberapa pelayan aplikasi di bahagian belakang untuk mencapai pengimbangan beban dan ketersediaan tinggi.

Dengan cara ini, walaupun salah satu pelayan aplikasi gagal, pelayan lain yang biasanya berjalan masih boleh memastikan perkhidmatan berjalan, sekali gus meningkatkan kebolehpercayaan sistem. 🎜🎜Kesimpulan: 🎜Dengan menggunakan NGINX, PM2 dan VPS, kami boleh membina kluster perkhidmatan aplikasi ketersediaan tinggi untuk mencapai pengimbangan beban dan pemulihan kerosakan. Seni bina sedemikian boleh meningkatkan ketersediaan aplikasi dan dapat mengendalikan lebih banyak permintaan serentak. Semoga contoh kod yang disediakan dalam artikel ini akan membantu anda memahami dan menggunakan alat dan teknik ini dengan lebih baik. Mari kita bina perkhidmatan aplikasi yang stabil dan boleh dipercayai bersama-sama! 🎜

Atas ialah kandungan terperinci NGINX PM2 VPS: Bina kluster perkhidmatan aplikasi ketersediaan tinggi. 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