Cara mengkonfigurasi nginx sebagai proksi terbalik untuk aplikasi nodejs
- 4271
- 405
- Ronnie Hermann
Nodejs adalah sumber terbuka percuma, rangka kerja JavaScript yang ringan, berskala dan cekap yang dibina di atas enjin V8 JavaScript Chrome, dan menggunakan model I/O yang didorong oleh peristiwa, tidak menyekat. Nodejs kini berada di mana -mana, dan telah menjadi begitu popular untuk membangunkan perisian dari laman web, aplikasi web ke aplikasi rangkaian dan banyak lagi.
Nginx adalah sumber terbuka, pelayan HTTP berprestasi tinggi, pengimbang beban dan perisian proksi terbalik. Ia mempunyai bahasa konfigurasi yang mudah memudahkan dikonfigurasikan. Dalam artikel ini, kami akan menunjukkan cara mengkonfigurasi nginx sebagai proksi terbalik untuk aplikasi nodej.
Baca juga: Panduan Terbaik untuk Mengamankan, Mengeraskan dan Meningkatkan Prestasi Pelayan Web Nginx
Catatan: Sekiranya sistem anda sudah berjalan dengan Nodejs dan Npm, Dan aplikasinya berjalan di pelabuhan tertentu, pergi terus ke Langkah 4.
Langkah 1: Memasang NodeJS dan NPM di Linux
Versi terkini Nod.js dan Npm tersedia untuk dipasang dari NodeSource Enterprise Linux, Fedora, Debian dan Ubuntu Binary Distributions Repository, yang dikekalkan oleh laman web NodeJS dan anda perlu menambahkannya ke sistem anda untuk dapat memasang pakej NodeJS dan NPM terkini seperti yang ditunjukkan.
Di Debian/Ubuntu
---------- Pasang nod.JS v11.x ---------- $ curl -sl https: // deb.Nodesource.com/setup_11.X | sudo -e bash -$ sudo apt -get install -y nodejs ---------- Pasang nod.JS v10.x ---------- $ curl -sl https: // deb.Nodesource.com/setup_10.X | sudo -e bash -$ sudo apt -get install -y nodejs
Di Centos/Rhel dan Fedora
---------- Pasang nod.JS v11.x ---------- $ curl -sl https: // rpm.Nodesource.com/setup_11.X | bash - ---------- Pasang nod.JS v10.x ---------- $ curl -sl https: // rpm.Nodesource.com/setup_10.X | bash -
Langkah 2: Membuat aplikasi NodeJS
Untuk tujuan demonstrasi, kami akan membuat aplikasi sampel yang dipanggil "Sysmon", yang akan berjalan di port 5000 seperti yang ditunjukkan.
$ sudo mkdir -p/var/www/html/sysmon $ sudo vim/var/www/html/sysmon/server.js
Salin dan tampal kod berikut di pelayan.js fail (ganti 192.168.43.31 dengan IP pelayan anda).
const http = memerlukan ('http'); const hostname = '192.168.43.31'; const port = 5000; const server = http.createeserver ((req, res) => res).statusCode = 200; res.Setheader ('Kandungan-Jenis', 'Teks/Plain'); res.akhir ('aplikasi sysmon sedang berjalan dan berjalan!\ n '); ); pelayan.Dengar (port, hostname, () => konsol.log ('Pelayan berjalan di http: // $ hostname: $ port/'); );
Simpan fail dan keluar.
Sekarang mulakan aplikasi nod anda menggunakan arahan berikut (tekan Ctrl+x
untuk menamatkannya).
$ sudo nod/var/www/html/sysmon/pelayan.js atau $ sudo nod/var/www/html/sysmon/pelayan.JS & #Start di latar belakang untuk membebaskan terminal anda
Sekarang buka penyemak imbas dan akses aplikasi anda di URL http: // 198.168.43.31: 5000
.
Langkah 3: Pasang proksi terbalik nginx di linux
Kami akan memasang versi terkini dari Nginx dari repositori rasmi, seperti yang ditunjukkan di bawah.
Di Debian/Ubuntu
Buat fail yang dipanggil /etc/apt/sumber.senarai.d/nginx.senarai dan tambahkan baris berikut kepadanya.
deb http: // nginx.org/pakej/ubuntu/bionik nginx deb-src http: // nginx.org/pakej/ubuntu/bionik nginx
Seterusnya, tambahkan kunci penandatangan repositori, kemas kini indeks pakej sistem anda dan pasangkan pakej nginx seperti berikut.
$ wget --quiet http: // nginx.org/kunci/nginx_signing.kekunci && sudo apt-key tambah nginx_signing.Kunci $ sudo apt update $ sudo apt install nginx
Di Centos/Rhel dan Fedora
Buat fail yang dinamakan /etc/yum.repos.d/nginx.repo dan tampal salah satu konfigurasi di bawah.
Centos
[nginx] name = nginx repo baseUrl = http: // nginx.org/pakej/centos/$ melegakan
/ $ Basearch/ gpgcheck = 0 enabled = 1
RHEL
[nginx] name = nginx repo baseUrl = http: // nginx.org/pakej/rhel/$ melegakan
/ $ Basearch/ gpgcheck = 0 enabled = 1
Catatan: Oleh kerana perbezaan antara bagaimana centos dan rhel, perlu menggantikannya $ melegakan
sama ada 6 (Untuk 6.x) atau 7 (Untuk 7.x), bergantung pada versi OS anda.
Seterusnya, tambahkan kunci penandatangan repositori dan pasangkan pakej nginx seperti yang ditunjukkan.
# wget --quiet http: // nginx.org/kunci/nginx_signing.kekunci && rpm --import nginx_signing.kunci # yum pasang nginx
Setelah berjaya memasang Nginx, Mulakannya, aktifkannya untuk memulakan automatik pada boot sistem dan periksa sama ada ia berjalan dan berjalan.
---------- Di Debian/Ubuntu ---------- $ sudo systemctl status nginx $ sudo systemctl enable nginx $ sudo systemctl status nginx ---------- Pada centos/rhel ---------- # Systemctl Status Nginx # Systemctl Dayakan Nginx # Systemctl Status Nginx
Sekiranya anda menjalankan firewall sistem, anda perlu membuka pelabuhan 80 (http), 443 (https) dan 5000 (aplikasi nod), yang pelayan web mendengarkan permintaan sambungan klien.
---------- Di Debian/Ubuntu ---------- $ sudo ufw membenarkan 80/tcp $ sudo ufw membenarkan 443/tcp $ sudo ufw membenarkan 5000/tcp $ sudo ufw tambah nilai ---------- Pada centos/rhel ---------- # firewall-cmd --permanent --add-port = 80/tcp # firewall-cmd --permanent --add-port = 443/tcp # firewall-cmd --permanent --add-port = 5000/tcp # firewall # firewall # -CMD -Reload
Langkah 4: Konfigurasikan Nginx sebagai proksi terbalik untuk aplikasi NodeJS
Sekarang buat fail konfigurasi blok pelayan untuk aplikasi nod anda di bawah /etc/nginx/conf.d/ seperti yang ditunjukkan.
$ sudo vim/etc/nginx/conf.d/sysmon.Conf
Salin dan tampal konfigurasi berikut (Tukar 192.168.43.31 dengan IP pelayan anda dan Tecmint.lan dengan nama domain anda).
pelayan mendengar 80; nama pelayan Sysmon.Tecmint.lan; lokasi / proxy_set_header x-forwarded-for $ remote_addr; proxy_set_header host $ http_host; proxy_pass http: // 192.168.43.31: 5000;
Simpan perubahan dan keluar dari fail.
Akhirnya, mulakan semula perkhidmatan nginx untuk mempengaruhi perubahan baru -baru ini.
$ sudo systemctl mulakan semula nginx atau # systemctl mulakan semula nginx
Langkah 5: Akses Aplikasi NodeJS melalui Pelayar Web
Sekarang anda sepatutnya dapat mengakses aplikasi nod anda tanpa menyediakan port yang sedang didengarnya, dalam URL: ini adalah cara yang sangat mudah bagi pengguna untuk mengaksesnya.
http: // sysmon.Tecmint.lan
Untuk nama domain ujian anda berfungsi, anda perlu menyediakan DNS tempatan menggunakan /etc/hos fail, buka dan tambahkan garis di bawah di dalamnya (ingat untuk menukar 192.168.43.31 dengan IP pelayan anda dan Tecmint.lan dengan nama doamin anda seperti sebelumnya).
192.168.43.31 Sysmon.Tecmint.lanAccess Node App melalui proksi terbalik nginx
Itu sahaja! Dalam artikel ini, kami menunjukkan cara mengkonfigurasi nginx sebagai proksi terbalik untuk aplikasi NodeJS. Gunakan borang maklum balas di bawah untuk mengemukakan sebarang pertanyaan atau kongsi pendapat anda mengenai artikel ini.
- « Cara boot ke mod penyelamat atau mod kecemasan di Ubuntu 20.04/18.04
- Cara memasang php 8.0 di Ubuntu 20.04/18.04 »