假设我在生产服务器上有一个 nodejs/express 应用程序。如果我想添加一个新路由器,我必须重新启动一个,对吧?但是,如果我重新启动我的 node.js 服务器,那么用户可能会收到错误消息。
那么我应该如何为我的用户重新启动我的 node.js 服务器而不出现错误?
最佳答案
如果您使用 Nginx 代理您的 Node.js 应用程序,您可以告诉您的 Node 应用程序监听套接字,然后仅在新服务器正确启动时关闭旧服务器;一旦旧服务器关闭,Nginx 会将请求路由到服务器的新实例。这是如何Unicorn ,一种流行的 Ruby 服务器,可以正常工作。
在 Nginx 中,您可以像这样指定您的上游:
upstream node_server {
server unix:/path/to/socket.sock;
}
server {
...
location / {
...
proxy_pass http://node_server;
}
}
在 Node 中,你可以监听一个套接字
server.listen('/path/to/socket.sock', function() {
console.log("Listening on socket.");
});
关于node.js - 重启 node.js 生产服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113190/