Dalam banyak skenario saat ini, saya melamar host VPS untuk host dan menjalankan proyek web. Saya tidak terkecuali. Saya membeli kemenangan kecil 03 VPS untuk digunakan. Selama proses penggunaan, kita menghadapi masalah, yaitu, jenis lingkungan server yang sama baik -baik saja - tetapi jika tiga jenis proyek server hidup berdampingan dengan satu PHP, satu ASP, dan satu JSP, bagaimana kita harus mengalokasikan satu -satunya port 80? Karena situs web WWW komersial sering hanya dapat menempati port 80. Tentu saja, jika Anda hanya melakukan layanan, seperti antarmuka, menggunakan port lain tidak akan bertentangan dengan port 80. Banyak pengembang menghadapi masalah port 80, dan situasi aktual akan dibatasi oleh biaya. Karena membeli VPS untuk proyek saja tidak ekonomis, tidak hemat biaya, dan tidak nyaman untuk dikelola. Oleh karena itu, kita harus mempertimbangkan dengan cermat bagaimana mendistribusikannya ke beberapa server sambil menyediakan port 80, memungkinkan host yang berbeda untuk melaksanakan proyek web masing -masing.
Sayang, bisakah kita mengatakan persyaratan ini direalisasikan? Ya, ini bukan "teknologi ajaib" atau teknologi yang kompleks. Saya bertanya -tanya apakah Anda memiliki pemahaman tentang "proxy terbalik" dalam layanan jaringan, salah satu fungsinya adalah untuk menyelesaikan distribusi port. Kami mungkin juga menggunakan nama domain sebagai rute untuk mendistribusikan: apa pun yang diminta oleh nama domain AA.com akan didistribusikan ke PHP Port 82 untuk dieksekusi; Setiap yang diminta oleh nama domain BB.com akan didistribusikan ke ASP Port 83 untuk eksekusi; ... dan seterusnya. Tentu saja, port di sini hanya untuk instruksi. Anda dapat mengonfigurasinya sesuka hati. Bagaimanapun, permintaan yang diterima dari port 80 akan diproses terlebih dahulu dan kemudian didistribusikan. Reverse Proxy, dalam istilah awam, hanya berbelok ke tangan kiri menjadi tangan kanan.
Setiap kali proxy terbalik disebutkan, orang biasanya memikirkan Nginx, tetapi hari ini kita mengabaikan Nginx yang terkenal untuk saat ini dan menggunakan NodeJs, saudara sisi server yang juga menggunakan loop tunggal dan peristiwa. Pertama -tama, Node menggunakan JS untuk pemrograman server, daripada Nginx untuk menulis konfigurasi atau LUA, yang lebih sesuai dengan selera saya. Kedua, saya lebih akrab dengan Node, dan lebih mudah untuk dikonfigurasi dalam semua aspek.
Paket node-http-proxy yang melengkapi fungsi ini. Untuk mengunduh dan menginstal, silakan ketik:
NPM Instal HTTP-Proxy
Setelah instalasi selesai, buat file proxy.js baru dan masukkan:
var http = membutuhkan ('http'), httpproxy = membutuhkan ('http-proxy'); // Buat objek proxy proxy proxy baru var proxy = httppproxy.createProxyServer ({{}); // Catch Exception proxy.on ('error', {{{{}); 'Tipe konten': 'Teks/polos'}); // Dalam setiap permintaan, hubungi metode proxy.web (req, res config) untuk meminta distribusi buat server khusus Anda dan cukup hubungi `proxy.web ()` ke proxy // permintaan web ke target yang diteruskan dalam opsi // Anda dapat menggunakan `proxy.ws ()` untuk proxy a websocket permintaan webser // var server = ('rever ('). Fungsi ('). FUMBERS ('). Creatping. // Anda dapat mendefinisikan logika khusus Anda untuk menangani permintaan // dan kemudian proksi permintaan var = req.url; req.connection.remoteAddress));Jika Anda berbicara tentang biaya menggunakan server proxy, mungkin ia akan mengkonsumsi lebih banyak operasi CPU daripada tanpa mengonsumsi lebih banyak sumber daya.
Masalah Penggunaan: Tidak dapat menentukan folder proxy.web (req, res, {target: 'http://vevb.com:81/foo/'});