Cara mengkonfigurasi nginx sebagai proksi terbalik untuk aplikasi nodejs

Cara mengkonfigurasi nginx sebagai proksi terbalik untuk aplikasi nodejs

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.

Access Node App dari penyemak imbas

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.lan 
Access 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.