GNU/Linux >> Belajar Linux >  >> Linux

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

Kode kesalahan EACCES berarti Anda tidak memiliki izin yang sesuai untuk menjalankan aplikasi di port tersebut. Pada sistem Linux, setiap port di bawah 1024 memerlukan akses root.


Alih-alih berjalan di port 80, Anda dapat mengalihkan port 80 ke port aplikasi Anda (>1024) menggunakan

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

Ini akan berfungsi jika aplikasi Anda berjalan pada port 3000.


Jawaban singkat:Anda dapat mengizinkan akses node ke port tersebut menggunakan:

setcap 'cap_net_bind_service=+ep' /path/to/nodejs

jawaban panjang

Sunting:

Mungkin tidak berfungsi pada versi simpul baru


Linux
  1. Linux – Menemukan Pid Proses Menggunakan Port Tertentu?

  2. Bagaimana cara membatasi cache yang digunakan dengan menyalin sehingga masih tersedia memori untuk cache lain?

  3. Dari mana saya dapat menemukan kode sumber perintah cp?

  1. Bisakah ID utas dari proses multithreaded sama dengan ID proses dari proses lain yang sedang berjalan?

  2. PyODBC :tidak dapat membuka driver meskipun itu ada

  3. dlsym mengembalikan NULL, meskipun simbolnya ada

  1. Bagaimana saya bisa mengetahui jalur absolut dari proses yang sedang berjalan?

  2. Menemukan PID dari proses menggunakan port tertentu?

  3. Bisakah proses init menjadi skrip shell di Linux?