GNU/Linux >> Belajar Linux >  >> Linux

Praktik terbaik saat menjalankan Node.js dengan port 80 (Ubuntu/Linode)

Berikan Izin Pengguna Aman Untuk Menggunakan Port 80

Ingat, kami TIDAK ingin menjalankan aplikasi Anda sebagai pengguna root, tetapi ada halangan:pengguna aman Anda tidak memiliki izin untuk menggunakan port HTTP default (80). Sasaran Anda adalah dapat memublikasikan situs web yang dapat digunakan pengunjung dengan menavigasi ke URL yang mudah digunakan seperti http://ip:port/

Sayangnya, kecuali Anda masuk sebagai root, biasanya Anda harus menggunakan URL seperti http://ip:port - di mana nomor port> 1024.

Banyak orang terjebak di sini, tetapi solusinya mudah. Ada beberapa pilihan tapi ini yang saya suka. Ketik perintah berikut:

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

Sekarang, saat Anda memberi tahu aplikasi Node bahwa Anda ingin menjalankannya di port 80, itu tidak akan mengeluh.

Periksa tautan referensi ini


Port 80

Apa yang saya lakukan pada instance cloud saya adalah mengarahkan port 80 ke port 3000 dengan perintah ini:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

Kemudian saya meluncurkan Node.js saya di port 3000. Permintaan ke port 80 akan dipetakan ke port 3000.

Anda juga harus mengedit /etc/rc.local Anda file dan tambahkan baris itu dikurangi sudo . Itu akan menambahkan pengalihan saat mesin melakukan booting. Anda tidak memerlukan sudo di /etc/rc.local karena perintah di sana dijalankan sebagai root saat sistem melakukan booting.

Log

Gunakan modul selamanya untuk meluncurkan Node.js Anda. Ini akan memastikan bahwa itu restart jika pernah macet dan itu akan mengarahkan log konsol ke file.

Luncurkan saat Boot

Tambahkan skrip awal Node.js Anda ke file yang Anda edit untuk pengalihan port, /etc/rc.local . Itu akan menjalankan skrip peluncuran Node.js Anda saat sistem dimulai.

Samudera Digital &VPS lainnya

Ini tidak hanya berlaku untuk Linode, tetapi juga Digital Ocean, AWS EC2, dan penyedia VPS lainnya. Namun, pada sistem berbasis RedHat /etc/rc.local adalah /ect/rc.d/local .


Linux
  1. Ubah Port SSH di Sistem Linux Ubuntu 20.04 - Metode Terbaik?

  2. Memulai Dengan Multipass – Menjalankan VM Ubuntu

  3. Cara menginstal NodeJs di Ubuntu 18.04

  1. Cara Menginstal Node.js dengan NVM dan Nginx di Ubuntu 22.04

  2. Node.js:Periksa apakah file adalah tautan simbolis saat mengulang direktori dengan 'fs'

  3. Memeriksa Banyak Port Saat Menjalankan NetCat (nc)

  1. Cara Mengelola Versi NodeJS dengan n di Ubuntu 20.04

  2. Instal Vsftpd dengan SSL / TLS di Ubuntu 20.04 - Prosedur Terbaik?

  3. 8 Praktik terbaik dengan sudo di Linux – Tindakan dan Larangan dari sudo