前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 基于cookie负载均衡

Nginx 基于cookie负载均衡

作者头像
星哥玩云
发布2022-06-28 16:18:23
6150
发布2022-06-28 16:18:23
举报
文章被收录于专栏:开源部署

为什么要用nginx基于cookie的负责均衡而不使用ip_hash呢?

在多台服务器的情况下,为了确保一个客户只和一台服务器进行通信,我们势必使用长连接。使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这并不是一个好的办法,如果客户端前端是CDN,或者说一个局域网的客户同时访问服务器,会出现服务端服务器负载分配不均衡,以及不能保证每次访问都粘滞在同一台服务器。如果基于cookie会是一种什么情形,想想看, 每台电脑都会有不同的cookie,在保持长连接的同时还保证了服务器的压力均衡。

实施方法: nginx-sticky下载地址:

https://nginx-sticky-module.googlecode.com/files/nginx-sticky-module-1.1.tar.gz 因为nginx每次加入模块都需要重新编译才可以。

tar xvzf nginx-sticky-module-1.1.tar.gz ./configure ........ "--add-module=../nginx-sticky-module-1.1" \ 在编译安装的时候如果服务器不安装openssl-devel 的时候 make的时候会报错误的 错误如下: 在包含自 /usr/local/src/ngx-tomcat/nginx-sticky-module-1.1/ngx_http_sticky_misc.c:11 的文件中

src/core/ngx_sha1.h:19:17: 错误:sha.h:没有那个文件或目录 In file included from /usr/local/src/ngx-tomcat/nginx-sticky-module-1.1/ngx_http_sticky_misc.c:11: src/core/ngx_sha1.h:23: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ngx_sha1_t’ /usr/local/src/ngx-tomcat/nginx-sticky-module-1.1/ngx_http_sticky_misc.c: 在函数‘ngx_http_sticky_misc_md5’中: 查看src/core/ngx_sha1.h其中有如下内容 16 #if (NGX_HAVE_OPENSSL_SHA1_H) 17 #include <openssl/sha.h> 18 #else 19 #include <sha.h> 20 #endif 所以安装 openssl-devel yum install -y openssl-devel 然后make make install 不会报错。 然后配置nginx 如下:

upstream _cc { sticky name=al_sticky; server 127.0.0.1:80 weight=10 max_fails=2 fail_timeout=30s; server 127.0.0.1:82 weight=10 max_fails=2 fail_timeout=30s; }

即可实现 nginx的基于cookie的负载均衡。 重启nginx /etc/init.d/nginx restart

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档