CentOS7.2 nginx1.10.1 增加后端健康检查upstream_check模�K

nginx1.10.1增加后端web健康检查upstream_check模�K


因�楣�司的�I�招枨螅�需要�⒁呀ê玫募��中反向代理和��d均衡做成集群,����Ω�瞻l量。

但是做成集群的架��后,後端的�膳_web�C器,需要靠nginx的upstream_check�碜鼋】�z查。

实验环境:

应用 IP 操作系统 涉及软件

负载均衡层 172.16.22.2 CentOS 7.2 nginx-1.10.1

后端web01 172.16.22.3 CentOS 7.2 Tomcat-7.0.72

后端web02 172.16.22.4 CentOS 7.2 Tomcat-7.0.72


下列的设定只在负载均衡层进行,且至针对单台进行操作,另外一台负载均衡机器集群成员也按照下列步骤操作即可。

下面呈现的是我大致的安装步骤:

1.已源�a安装nginx1.10.1版本


2.首先下�d了nginx_upstream_check_module模�K�a丁

wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip


3.把master.zip解��

[root@z soft]#unzip nginx_upstream_check_module.zip

�M入到nginx_upstream_check_module��

[root@z nginx_upstream_check_module]#pwd

/data0/soft/nginx_upstream_check_module

--主要�榉奖汜崂m打好�a丁做���


4.�M入到nginx1.10.1的源�a包目�里

[root@z ~]#cd /usr/local/nginx-1.10.1


5.因要��nginx打後�_健康�z查的�a丁,需要把打�a丁的命令安�b完��

[root@z nginx-1.10.1]#rpm -qa | grep patch

patch-2.7.1-8.el7.x86_64


如果�]有安�bpatch,就yum install -y patch


6.打upstream_check�a丁�M入nginx-1.10.1��

[root@z nginx-1.10.1]#patch -p0 < /data0/soft/nginx_upstream_check_module/check_1.11.1+.patch


7.打完�a丁就�M行��g

因�樾枰�添加�Cadd-module=/root/nginx_upstream_check_module-master

如果其他编译参数和之前保持一致,但又不记得之前的编译参数,

可使用 nginx -V 命令查看。

[root@z nginx-1.10.1]# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.10.1

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments:

--prefix=/usr/local/nginx

--pid-path=/var/run/nginx/nginx.pid

--lock-path=/var/lock/nginx.lock

--user=nginx

--group=nginx

--with-http_ssl_module

--with-http_flv_module

--with-http_stub_status_module

--with-http_gzip_static_module

--http-client-body-temp-path=/var/tmp/nginx/client/

--http-proxy-temp-path=/var/tmp/nginx/proxy/

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi

--http-scgi-temp-path=/var/tmp/nginx/scgi

--with-pcre


所以就�M行��g,只要在後面添加upstream_check_module-master

即如下:

[root@z nginx-1.10.1]#./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_flv_module \

--with-http_stub_status_module \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/tmp/nginx/client/ \

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

--http-scgi-temp-path=/var/tmp/nginx/scgi \

--with-pcre \

--add-module=/data0/soft/nginx_upstream_check_module-master/


[root@z nginx-1.10.1]# make && make install

[root@z nginx-1.10.1]# make clean

#注:因�槲沂窃谠��硪寻沧暗陌姹旧习膊�nginx_upstream_check_module模�K,所以nginx.conf是在原�淼幕��A上生成的,所以不需要另外�浞荨R�是谨慎点�是把原�淼呐渲�n案�浞菀幌拢�再�M行��g安�b。


8.到了这,就是重�c了,配置nginx�z�y後端��c健康��r

vim /etc/nginx.conf

添加upstream模�K


upstream information{

server 172.16.22.3:80 max_fails=2;

server 172.16.22.4:80 max_fails=2;

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

}

--嵌套�Mhttp�燃纯�


#注,指令参数的意义

- interval:向后端发送的健康检查包的间隔ms。

- fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。

- rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。

- timeout: 后端健康请求的超时时间。

- default_down: 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。

默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。

- type:健康检查包的类型,现在支持以下多种类型

- tcp:简单的tcp连接,如果连接成功,就说明后端正常。

- ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。

- http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。

- mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。

- ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。

- port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,

比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。


9.通过访问nginxstatus�面,查看后端机器是否真的�B接上了的准备工作

vim /etc/nginx.conf

配置负载均衡层实时连接状态展示页面,在nginx.conf上添加上

location /nginxstatus{

stub_status on;

access_log /usr/local/nginx/logs/status.log;

auth_basic "nginxstatus";

}


查看后端�W�的�B接��,查看upstream check status,即后端web健康状况

#添加了nginx_upstream_check_module模块之后,该项生效

#主要为了测试nginx_upstream_check_module模块是否好使

location /zstatus{

check_status;

access_log off;

#allow IP;

#deny all;

}


10.配置完��,需要重��nginx服务

先�z查配置信息是否�o�`

[root@z nginx-1.10.1]#/usr/local/nginx/sbin/nginx -t


平滑重��nginx服��

[root@z nginx-1.10.1]#/usr/local/nginx/sbin/nignx -s reload


可以在�W�上�g�[�L��http://172.16.22.2/nginxstatus ,查看nginx的连接状态

wKiom1kVF9mjgN09AAATT-vZ5W0448.png

访问http://172.16.22.2/informationstatus,查看后端web健康状况

wKioL1kVF9rhE4zFAAA9dEs_pig375.png

以上说明后端健康检查模块安装成功!

上述内容纯靠记忆写下,可能存在缺漏,如有错误与遗失,欢迎大家指出,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor&#160;1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep &#39;Time zone&#39;查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=&quot;static&quot; ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// &lt;summary&gt; /// 取小写文件名后缀 /// &lt;/summary&gt; /// &lt;param name=&quot;name&quot;&gt;文件名&lt;/param&gt; /// &lt;returns&gt;返回小写后缀,不带“.”&lt;/ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start &amp; nohup ./kibana &amp;
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的&#160;Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程,&#160;ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属