重新启动node.js生产服务器

Eri*_*rik 4 node.js express

假设我在生产服务器上有一个nodejs/express应用程序.如果我想添加一个新的路由器,我必须重启一个,对吗?但是,如果我重新启动我的node.js服务器,那么用户可能会收到错误.

那么我应该如何为我的用户重启我的node.js服务器而不出错?

Mic*_*ley 9

如果您使用Nginx代理您的Node.js应用程序,您可以告诉您的Node应用程序在套接字上侦听,然后只有在新服务器正确启动时关闭旧服务器; 一旦旧服务器关闭,Nginx将把请求路由到服务器的新实例.这就是流行的Ruby服务器Unicorn的工作原理.

在Nginx中,您可以像这样指定上游:

upstream node_server {
  server unix:/path/to/socket.sock;
}

server {
  ...
  location / {
    ...
     proxy_pass http://node_server;
  }
}
Run Code Online (Sandbox Code Playgroud)

在节点中,您可以使用侦听套接字

server.listen('/path/to/socket.sock', function() {
  console.log("Listening on socket.");
});
Run Code Online (Sandbox Code Playgroud)