GNU/Linux >> Znalost Linux >  >> Linux

Aplikaci Node.js nelze spustit na portu 80, i když port neblokuje žádný jiný proces

Kód chyby EACCES znamená, že nemáte správná oprávnění ke spouštění aplikací na tomto portu. V systémech Linux vyžaduje jakýkoli port pod 1024 přístup root.


Místo spuštění na portu 80 můžete přesměrovat port 80 na port vaší aplikace (>1024) pomocí

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

To bude fungovat, pokud vaše aplikace běží na portu 3000.


Krátká odpověď:Přístup uzlu k tomuto portu můžete povolit pomocí:

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

dlouhá odpověď

Upravit:

Nemusí fungovat na nových verzích uzlů


Linux
  1. Linux – Nalezení PID procesu pomocí konkrétního portu?

  2. Jak spustit Node.js jako proces na pozadí a nikdy nezemřít?

  3. Kde najdu zdrojový kód příkazu cp?

  1. Může být ID vlákna vícevláknového procesu stejné jako ID procesu jiného běžícího procesu?

  2. dlsym vrátí NULL, i když symbol existuje

  3. Jak mohu znát absolutní cestu běžícího procesu?

  1. Uložte do proměnné počet sekund, po které proces trval

  2. Jak mohu omezit mezipaměť používanou kopírováním, aby byla stále k dispozici paměť pro jinou mezipaměť?

  3. Povolení spouštění aplikací node.js na portu 80