Ответ 1
Если вам нужно запустить сервер на порту 80, вы должны использовать обратный прокси, например nginx, который будет запускаться с использованием системной учетной записи на привилегированный порт и прокси-сервер на ваш сервер Node.js, запущенный на непривилегированном порту ( > 1024).
При работе в среде разработки вы можете свободно запускаться с правами администратора, но это довольно опасно в рабочей среде.
Здесь пример конфигурации nginx, который увидит, является ли запрос файлом, который существует в файловой системе, а если нет, прокси-запрос на ваш сервер Node.js, запущенный на порту 9000
upstream yournodeapp {
server localhost:9000 fail_timeout=0;
keepalive 60;
}
server {
server_name localhost;
listen 80 default_server;
# Serve static assets from this folder
root /home/user/project/public;
location / {
try_files $uri @yournodeapp;
}
location @yournodeapp {
proxy_pass http://yournodeapp;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}