nginx后端服务器状态检测

简介:

一、模块healthcheck_nginx_upstreams

http://wiki.nginx.org/HttpHealthcheckModule

1、下载安装,

在https://github.com/liseen/healthcheck_nginx_upstreams下载该模块,没有公布的版本,下载时要双击打开后,将代码另存的方式下载,

也可以去这里下载: http://download.csdn.net/detail/ly_stu/5976009

2、进入nginx的源码目录 为nginx打补丁 healthcheck.pathch #注意路径

#patch –p1< ../cep21-healthcheck_nginx_upstreams/healthcheck.patch

编译安装nginx

./configure --user=www --group=www--prefix=/usr/local/nginx/ --with- pcre=/usr/local/src/pcre-8.31--with-http_stub_status_module --with-http_ssl_module --add-module=../cep21-healthcheck_nginx_upstreams-b33a846/ && make && make install&& make clean

3、配置nginx.conf healthcheck_nginx_upstreamscontextupstream

分别在两个站点目录下创建error.jsp探测页面,注意防火墙的阻挡,touch error.jsp

http{

……

upstream backend {

server 192.168.15.65:80;

server 192.168.15.183:8080;

#开启

healthcheck_enabled;

#检测每一端的延迟,单位为毫秒

healthcheck_delay 1000;

#超过2000毫秒为超时

healthcheck_timeout 2000;

#失败尝试

healthcheck_failcount 3;

#实际检测

healthcheck_send "GET /error.jspHTTP/1.0";

}

server{

……

location ~ /health {

healthcheck_status;

access_log off;

allow 192.168.15.65/20;

deny all;

}

……

网页查看运行结果:

203743197.png


注意:HttpHealthcheckModulenginx_upstream_check_module安装时补丁包有一定冲突,不可同时安装。


二、模块nginx_upstream_check_module


获取该模块版本包

https://github.com/yaoweibin/nginx_upstream_check_module/releases


进入nginx的解压目录:

#patch -p1 < /path/to/nginx_http_upstream_check_module/check.patch


注:因nginx版本更新,1.2以上版本的nginx,补丁为check_1.2.1+.patch

编译安装nginx

#./configure --prefix=/usr/local/nginx/ \

--with-pcre=/usr/local/src/pcre-8.31\

--with-http_stub_status_module \

--with-http_ssl_module \

--add-module=/path/to/nginx_http_upstream_check_module

#make && makeinstall && make clean

nginx.conf配置文件里面的upstream加入健康检查,如下:

http{

……

upstreamwww.example.com {

server 192.168.15.187:80;

server 192.168.15.188:80;

#追加下面行就ok了

check interval=1500 rise=2 fall=2 timeout=1000;

}

server{

……

location ~ /nstatus {

check_status;

access_log off;

allow 192.168.1.176;

}

}

}

注:无关配置项省略。


判断语法,重载nginx服务

[root@master ~]# /usr/local/nginx/sbin/nginx -t

[root@master ~]# /usr/local/nginx/sbin/nginx -s reload


网页查看运行结果:

203708535.png

虽然上面两个模块都可以实现对后端的检测,但总是有一种鸡肋的感觉,对于有多个应用前端的生产环境而言,每个前端都需要安装该模块插件,当然也是单独的页面显示,会给用户返回大量的信息【包括很多正常的信息,其实检测后端的目的就是了解到错误连接,并实现告警】,并不理想,而且不能实现告警。继续学习寻找中[手动写脚本]……



本文转自 刘园  51CTO博客,原文链接:http://blog.51cto.com/colynn/1328863
相关文章
|
19天前
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
7天前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
12天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
51 3
|
14天前
|
弹性计算 运维 Shell
后端服务器一键上下线
【4月更文挑战第30天】
7 1
|
18天前
|
运维 应用服务中间件 nginx
【docker】记录一次nginx启动失败的检测
【docker】记录一次nginx启动失败的检测
15 1
|
20天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
20天前
|
JSON JavaScript 前端开发
服务器通信:使用WebSocket与后端实时交互
【4月更文挑战第24天】WebSocket为解决服务器与客户端实时双向通信问题而生,常用于聊天、游戏和实时通知等场景。本文通过4步教你实现WebSocket通信:1) 客户端使用JavaScript创建WebSocket连接;2) 监听`open`、`message`和`close`事件;3) 使用`send`方法发送数据;4) 使用`close`方法关闭连接。服务器端则需处理连接和数据发送,具体实现依后端技术而定。WebSocket为现代Web应用的实时交互提供了强大支持。
|
25天前
|
小程序 开发者
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
19 0
|
26天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
4天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。