Membina sistem teragih: menggunakan Pengurus Proksi Nginx untuk melaksanakan penemuan perkhidmatan dan penghalaan
Ikhtisar:
Dalam sistem moden penemuan perkhidmatan dan penghalaan adalah fungsi yang sangat penting. Penemuan perkhidmatan membolehkan sistem menemui dan mendaftarkan contoh perkhidmatan yang tersedia secara automatik, manakala penghalaan memastikan permintaan dimajukan dengan betul kepada tika perkhidmatan yang sesuai. Dalam artikel ini, kami akan memperkenalkan cara memanfaatkan Pengurus Proksi Nginx untuk membina penemuan perkhidmatan dan penyelesaian penghalaan yang mudah tetapi berkuasa, dan menyediakan contoh kod khusus.
npm install -g nginx-proxy-manager
Selepas pemasangan selesai, anda boleh menggunakan arahan berikut untuk memulakan Pengurus Proksi Nginx:
npm start
Selepas bermula, anda boleh menyemak imbas dengan Pelayan mengakses http://localhost:81 untuk membuka antara muka web Pengurus Proksi Nginx. Apabila mengakses buat kali pertama, anda perlu menetapkan nama pengguna dan kata laluan pentadbir.
Berikut ialah contoh konfigurasi Hulu:
Name: my_service Servers: - Name: server1 Address: 192.168.0.1:8000 - Name: server2 Address: 192.168.0.2:8000
Dalam konfigurasi ini, kami mencipta Upstream bernama my_service, yang mengandungi dua kejadian, Ia adalah 192.168.0.1 :8000 dan 192.168.0.2:8000 masing-masing.
Berikut ialah contoh konfigurasi Hos Proksi:
Domain Name: mydomain.com Path: /myroute Upstream: my_service
Dalam konfigurasi ini, kami mencipta konfigurasi yang memajukan semua permintaan daripada mydomain.com/myroute Peraturan penghalaan ke my_service Hulu.
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, world!'); }); app.listen(8000, () => { console.log('Server is running on http://localhost:8000'); // TODO: Register the server with Nginx Proxy Manager });
Dalam kod sampel ini, kami memulakan pelayan HTTP mendengar pada port 8000. Untuk mendaftarkan perkhidmatan ini dengan Pengurus Proksi Nginx, anda perlu menambah kod pendaftaran yang sepadan dalam fungsi panggil balik yang memulakan pelayan.
Anda boleh menggunakan API yang disediakan oleh Pengurus Proksi Nginx untuk mendaftar dan membatalkan pendaftaran contoh perkhidmatan. Berikut ialah contoh kod untuk mendaftarkan contoh perkhidmatan kepada Pengurus Proksi Nginx:
const axios = require('axios'); const registerInstance = async (name, address) => { try { await axios.post('http://localhost:81/api/proxy/host', { name, target: address, }); console.log(`Instance ${name} registered successfully`); } catch (error) { console.error(`Failed to register instance ${name}`, error); } }; // Register the server instance with Nginx Proxy Manager registerInstance('server1', 'http://192.168.0.1:8000');
Dalam kod sampel ini, kami menggunakan perpustakaan axios untuk menghantar permintaan HTTP. Daftarkan contoh perkhidmatan dengan memanggil fungsi registerInstance
, menghantar nama dan alamat contoh kepada API Pengurus Proksi Nginx. Anda perlu memastikan bahawa alamat yang diminta oleh API adalah konsisten dengan alamat sebenar Pengurus Proksi Nginx.
Dengan menjalankan kod sampel ini pada berbilang pelayan, anda boleh mendaftarkannya sebagai contoh perkhidmatan dan menggunakan Pengurus Proksi Nginx untuk melaksanakan penemuan perkhidmatan dan penghalaan.
Ringkasan:
Dengan menggunakan Pengurus Proksi Nginx untuk membina penemuan perkhidmatan dan fungsi penghalaan sistem teragih, konfigurasi dan pengurusan sistem dapat dipermudahkan dan kebolehpercayaan dan skalabiliti sistem dapat diperbaiki. Artikel ini memperkenalkan kaedah pemasangan dan konfigurasi Pengurus Proksi Nginx, dan menyediakan contoh kod khusus untuk menunjukkan cara mendaftar contoh perkhidmatan dan mengkonfigurasi peraturan penghalaan. Pembaca boleh melaraskan dan melanjutkan contoh kod ini untuk memenuhi keperluan sistem edaran mereka sendiri.
Atas ialah kandungan terperinci Membina sistem teragih: menggunakan Pengurus Proksi Nginx untuk melaksanakan penemuan perkhidmatan dan penghalaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!