如果需要在端口80上运行服务器,则应使用反向代理(如nginx),该代理将在特权端口上使用系统帐户运行,并将请求代理到在非特权端口(>
1024)上运行的Node.js服务器。
在开发环境中运行时,您可以自由地以root身份运行(即
sudo node server.js),但这在生产环境中非常危险。
这是一个示例nginx配置,它将查看请求是否针对文件系统中存在的文件,如果不存在,则将该请求代理到运行在端口9000上的Node.js服务器
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"; }}


