大家都知道,前段nginx做反向代理,如果后端服务器宕掉的话,nginx是不能把这台realserver提出upstream的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面。
但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发,这次借助与淘宝技术团队开发的nginx模块,nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所有的请求不转发到这台服务器。
安装配置
文件列表信息
[root@iZ233438q9fZ upload]# ll drwxr-xr-x 6 ftpuser ftp 4096 Aug 19 10:04 nginx_upstream_check_module drwxr-xr-x 8 1001 1001 4096 Jun 16 2015 nginx-1.9.2.tar.gz
解压
[root@iZ233438q9fZ upload]# tar -zxvf nginx-1.9.2.tar.gz [root@iZ233438q9fZ upload]# cd nginx-1.9.2
nginx补丁安装
[root@iZ233438q9fZ nginx-1.9.2]# patch -p0 < /var/ftp/upload/nginx_upstream_check_module/check_1.9.2+.patch patching file src/http/modules/ngx_http_upstream_hash_module.c patching file src/http/modules/ngx_http_upstream_ip_hash_module.c patching file src/http/modules/ngx_http_upstream_least_conn_module.c patching file src/http/ngx_http_upstream_round_robin.c patching file src/http/ngx_http_upstream_round_robin.h
编译配置
[root@iZ233438q9fZ nginx-1.9.2]# ./configure --add-module=/var/ftp/upload/nginx_upstream_check_module --prefix=/usr/local/server/nginx [root@iZ233438q9fZ nginx-1.9.2]# make && make install
nginx.conf健康检查配置样例
参数说明:
- check_status:[html|csv|json],默认html
- check_http_send:指定检测的http访问地址,默认/
- type:[tcp|http|ssl_hello|mysql|ajp],默认tcp
- interval:向后端发送的健康检查包的间隔,单位(毫秒)
- fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
- rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
- timeout: 后端健康请求的超时时间。
PS:如果一直显示失败,请检查项目根目录中是否有index.jsp或index.html
更多Nginx相关技术文章,请访问Nginx使用教程栏目进行学习!
Atas ialah kandungan terperinci 先安装nginx再加健康模块么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!