Nginx 模块推荐 Session 粘连和扩展失败测试

Nginx 的 Session 粘连

在网站的应用中,常常对于同一个 session 的某个客户端的请求,一定要定位到同一台服务器.不然会出现反应登陆提交之类的问题.这一直以来就是一个棘手的问题.常见的解决方案是 session 共享.我们也能使用 nginx 的扩展模块来达到这个功能.就是使用 nginx-sticky-module 这个模块.

默认的 RR 和 ip_hash 之类是肯定不能定位到同一个 session 到相同的应用服务器上.所以使用上面这个模块的作用是根据的 cookie 的信息对后端的机器进行分发请求.

原理其实很简单,当一个客户端请求过来时,会 set-cookie 一个 cookie 来标注本次请求的服务器(第一次是随机).然后下次请求都会包含这个 cookie .然后就能很好的区分原本请求的服务器了.我测试过,当默认请求的后端服务器死掉后,会还是会自动切换的.另外,这个模块并不合适对不支持 Cookie 的浏览器.

下载地址:

配置非常容易:

upstream {

    sticky;

    server 127.0.0.1:9000;

    server 127.0.0.1:9001;

    server 127.0.0.1:9002;

}

下次请求就会有 cookie 的信息了:象 route=1a06c7beb951fc195dcaf59ca3caa0ff 这种信息.默认 cookie 的 key 是 route .还可以设置很多 Cookie 相关的其它的参数如 domain.这引起可以查看相关文档.

Nginx 的后端检查扩展

现在介绍另一个模块.进行后端 upstream 服务器的扩展监控的模块.默认 Nginx 并不能监控 http 的连接是否正常.所以需要使用这个模块来扩展.推荐的这个模块是基于原来的 healthcheck_nginx_upstreams 的设计思想的.

下载地址:https://github.com/yaoweibin/nginx_upstream_check_module

upstream {

    server 127.0.0.1:9000;

    server 127.0.0.1:9001;

    server 127.0.0.1:9002;

  

    check interval=3000 rise=2 fall=5 timeout=1000 type=http;

    check_http_send "GET / HTTP/1.0\r\n\r\n";

    check_http_expect_alive http_2xx http_3xx;

}

这个也象 haproxy 的这种功能的模块一样,提供了一个简单的界面来显示,只需要简单的配置一下:

location /status {

        check_status;

        access_log   off;

}  

难看是难看了点,但有比没有好对吧。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ed1d414d846b301efa36d4be75794b6a.html