本文摘自PHP中文网,作者V,侵删。

目的:
添加第三方编写的插件,以nginx-sticky-module为例,以下简称 sticky
通过 /usr/local/nginx/sbin/nginx -V 查看nginx已安装的模块
(推荐教程:nginx教程)
sticky模块与Ip_hash都是与负载均衡算法相关,但又有差别,差别是:
1、ip hash,根据客户端的IP,将请求分配到不同的服务器上
2、sticky,根据服务器给客户端的cookie,客户端再次请求时会带上此cookie,nginx会把有此cookie的请求转发到颁发cookie的服务器上
注意:在一个局域网内有3台电脑,他们有3个内网IP,但是他们发起请求时,却只有一个外网IP,是电信运营商分配在他们连接那个路由器上的,如果使用 ip_hash 方式,则Nginx会将请求分配到不同上游服务器,如果使用 sticky 模块,则会把请求分配到办法cookie的服务器上,实现:内网nat用户的均衡。这是iphash无法做到的
Sticky工作原理:
Sticky是基于cookie的一种负载均衡解决方案,通过分发和识别cookie,使来自同一个客户端的请求落在同一台服务器上,默认cookie标识名为route :
1、客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。
2、后端服务器处理完请求,将响应数据返回给nginx。
3、此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值
4、客户端接收请求,并保存带route的cookie。
5、当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。
Sticky官网地址
官方地址:
1 | https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/src
|
下载地址:
1 | wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
|
Nginx安装Sticky模块
1 2 3 4 5 6 7 8 9 10 11 12 | #1.下载的文件上传,解压
tar -xvzf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar
#2.重命名为nginx-sticky-module
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 /usr/local/nginx-sticky-module
#3.进入nginx源码目录进行编译
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module
#4.安装
1.停止nginx后进行安装:make && make install
2.在线更新安装: make upgrade
|
这样就安装完了,通过 ./sbin/nginx -V 查看编译参数,可看到sticky模块已被编译进nginx
1 2 3 4 5 6 | [root@bogon nginx]# ./sbin/nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --add-module=/usr/local/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
|
修改nginx.conf,启用 sticky 功能
阅读剩余部分
相关阅读 >>
怎么实现nginx访问
nginx与php怎么实现高并发
linux如何查看nginx是否启动
nginx哪个版本好
nginx干什么的
nginx的connection是什么?
tomcat和nginx的区别是什么
nginx_lua能做什么
利用yum安装nginx服务
nginx服务器安装锐安信ssl证书教程
更多相关阅读请进入《nginx》频道 >>
转载请注明出处:木庄网络博客 » nginx添加第三方模块