使用nginx进行HTTP负载均衡

时间:2014-09-25 13:10:58

标签: session nginx load-balancing

我有这样的配置。

upstream servers{
                server localhost:port1;
                server localhost:port2;
                server localhost:port3;

}

server{
       listen nginx_port;
       server_name localhost 

       location{
                proxy_pass http//:servers;
}



}

现在我想知道的是如何在维护(我的意思是暂时关闭)一台服务器的同时保持用户的会话活动。假设我现在有3页注册用户连接到localhost:port1并在此期间工作,如果我想关闭服务器(localhost:port1)并将用户转发到下一个服务器(localhost:port2)保持session alive我的意思是用户应该能够毫无困难地完成他的注册,然后在nginx配置文件中我必须做什么。有可能吗?

1 个答案:

答案 0 :(得分:1)

你不能用nginx做到这一点,因为nginx不是提供会话功能的东西。您需要对上游服务器执行此操作,方法是将它们配置为使用可由所有服务器(如数据库或内存缓存)共享的会话存储,而不是服务器特定的会话存储(如本地硬盘驱动器上的临时目录中的文件)。您的工作方式因您的上游服务器而异。例如,如果您使用的是Zend,则可以实现database save handler

(我假设您的配置只是一个示例,并且您在同一台计算机上实际上没有三个相同的上游服务器。)