GNU/Linux >> Belajar Linux >  >> Linux

Mengizinkan aplikasi node.js berjalan di port 80

Solusi 1:

untuk menghindari kesalahan ini, Anda dapat menyelesaikan executable non-symlink dengan which node , sebagai contoh lengkap:

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

perintah "yang mana" menunjukkan jalur lengkap dari perintah shell.

Solusi 2:

Menemukannya. Ternyata bagaimanapun saya menginstal node, membuat sym-link di /usr/bin/node yang menunjuk ke sym-link lain di /etc/alternatives/node yang menunjuk ke sym-link lain di /usr/bin/nodejs.

Menjalankan perintah terhadap /usr/bin/nodejs berhasil.

Solusi 3:

FWIW, opsi lain adalah menggunakan authbind. Authbind menggunakan mekanisme yang sedikit berbeda untuk mencapai tujuan yang serupa dengan CAP_NET_BIND_SERVICE. Yaitu. memungkinkan aplikasi non-istimewa untuk menggunakan port istimewa.

Instal dari apt:

sudo apt-get update && sudo apt-get install authbind

Dengan asumsi app.js yang diinginkan berjalan di bawah "pengguna" pengguna yang tidak memiliki hak istimewa dan Anda ingin mengikat ke port 80:

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80

Kemudian jalankan aplikasi Anda seperti ini:

authbind node app.js

Jika Anda ingin menggunakan sesuatu seperti "selamanya" (pada dasarnya melakukan daemonisasi aplikasi node), maka inilah caranya:

authbind --deep forever app.js

Linux
  1. Jalankan container di Linux tanpa Sudo di Podman

  2. Menggunakan Sudo untuk mendelegasikan izin di Linux

  3. Linux – Menjalankan Aplikasi Mac Os X Di Linux?

  1. Cara Membuka Port 80 &443 di FirewallD

  2. Ingat Aplikasi Saat Keluar Dari Lxde?

  3. Jalankan ifconfig tanpa sudo

  1. Konflik Node.js:/sbin/node Vs /usr/bin/node?

  2. Aplikasi Node.js tidak dapat berjalan di port 80 meskipun tidak ada proses lain yang memblokir port tersebut

  3. Bagaimana cara memeriksa apakah saya memiliki akses sudo?