我有这样的配置。
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配置文件中我必须做什么。有可能吗?
答案 0 :(得分:1)
你不能用nginx做到这一点,因为nginx不是提供会话功能的东西。您需要对上游服务器执行此操作,方法是将它们配置为使用可由所有服务器(如数据库或内存缓存)共享的会话存储,而不是服务器特定的会话存储(如本地硬盘驱动器上的临时目录中的文件)。您的工作方式因您的上游服务器而异。例如,如果您使用的是Zend,则可以实现database save handler。
(我假设您的配置只是一个示例,并且您在同一台计算机上实际上没有三个相同的上游服务器。)