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
.