nginx添加第三方模块


本文摘自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》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...