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
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
。通过设置instances
为max
以及exec_mode
为cluster
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; }
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 tinggiBerdasarkan 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.
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!