从理论上讲,您可以构建一个模拟Apache / Lighttpd /
Nginx功能的纯节点Web服务器,但我不建议这样做。实际上,对于严肃的生产服务,我建议您始终在Nginx或同等产品上领先您的服务)。
这是一个简单的Nginx配置对端口80上公开的两个子服务的工作方式。
worker_processes 4;events { worker_connections 1024;}http { include mime.types; default_type text/html; server { listen 80; server_name service1.mydomain.com location / { proxy_pass http://127.0.0.1:3000/; } } server { listen 80; server_name service2.mydomain.com location / { proxy_pass http://127.0.0.1:3001/; } }}我已经看到生产环境出现内核恐慌,因为Node默认情况下不会限制负载,并且正在优先接受新连接而不是处理现有请求-当然,它“不应该”使内核崩溃,但是确实崩溃了。另外,通过在端口3000上运行,您可以以很少的权限以非root用户身份运行Node服务(并且仍然可以对其进行代理,以便它似乎位于端口80上)。您还可以在多个工作线程之间分散负载,提供静态服务,日志请求,重写URL等,等等。Nginx非常快(比Apache轻得多)。同框代理转发的开销很小,并且为您购买了如此多的功能和鲁棒性,这在我的书中是扣篮。甚至是很小的东西,例如-
当我崩溃或使节点服务超载时,用户是否也会出现黑洞或“请原谅我们的灰尘,



