У меня есть сервер узла express, работающий на экземпляре aws ec2. Когда я запускаю
sudo node server.js
, сервер работает на порту 80 и работает нормально, когда я делаю http-запрос к серверу. Однако, когда я запускаю
sudo pm2 start server.js
, каждый раз, когда я делаю запрос, я получаю следующую ошибку
{ Error: listen EACCES: permission denied 0.0.0.0:80
at Server.setupListenHandle [as _listen2] (net.js:1242:19)
at listenInCluster (net.js:1307:12)
at Server.listen (net.js:1395:7)
at Object.<anonymous> (/home/ubuntu/evercampus-server/server.js:19:8)
at Module._compile (internal/modules/cjs/loader.js:816:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
at Module.load (internal/modules/cjs/loader.js:685:32)
at Function.Module._load (internal/modules/cjs/loader.js:620:12)
at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:32:23)
at Module._compile (internal/modules/cjs/loader.js:816:30)
code: 'EACCES',
errno: 'EACCES',
syscall: 'listen',
address: '0.0.0.0',
port: 80 }
Я пытался использовать pm2 для запуска на порту 5000, и он работает нормально.
Я очень озадачен тем, почему сервер узла sudo. js работает, но сервер sudo pm2 запускается. js не работает.
Я видел в другом посте ( Запуск приложения Node через PM2 на порт 80 ) о работе сервера на порту 5000 и пересылке запросов с порта 80 на 5000. Однако я хочу понять, почему pm2 не будет работать на порту 80.