大家都知道,前段nginx做反向代理,如果后端服务器宕掉的话,nginx是不能把这台realserver提出upstream的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,方法在:http://www.linuxyan.com/web-server/67.html,大家可以参考一下,但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发,这次借助与淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所以的请求不转发到这台服务器。
nginx安装健康检查模块
使用版本
nginx-1.2.9
下载补丁
https://github.com/yaoweibin/nginx_upstream_check_module
解压缩源码
cd /application/search/tmp/nginx-1.2.9
patch -p1 < /application/search/tmp/nginx_upstream_check_module-0.1.9/check_1.2.6+.patch
./configure \
--prefix=/application/search/usr/nginx-1.2.9 \
--with-http_ssl_module \
--add-module=/application/search/tmp/nginx_upstream_check_module-0.1.9
make && make install
配置方式
upstream myserver {
server 127.0.0.1:81;
server 127.0.0.1:82;
check interval=3000 rise=2 fall=1 timeout=1000 type=http;
#必须是HTTP/1.0
check_http_send "GET /_.gif HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
server节点配置
location /load {
proxy_pass http://myserver/;
proxy_redirect http://myserver/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /nstatus {
check_status;
access_log off;
#allow SOME.IP.ADD.RESS;
#deny all;
}
分享到:
相关推荐
Nginx 的健康检查模块是其负载均衡策略的一部分,它会定期发送请求到后端服务器以确认它们是否正常工作。这个模块通过检查后端服务器的响应时间、HTTP状态码以及用户自定义的HTTP报头来判断服务器的健康状态。如果...
官方nginx 镜像不带主动健康,本镜像将 nginx_upstream_check健康检查 打包到了镜像中。
3. **Nginx自定义模块开发**:学习如何使用C语言编写Nginx模块,实现与阿里健康检查服务的接口对接,将健康检查结果应用到upstream模块的决策过程中。 4. **配置文件修改**:分析并修改Nginx配置文件,将阿里健康...
2. **nginx_upstream_check_module-0.3.0.tar**:此模块是Nginx的上游健康检查模块,用于监控和检查后端服务器的健康状态。它可以在服务器出现问题时自动将流量重定向到其他正常运行的服务器,提高服务的可用性和...
3. 考虑到服务器故障的情况,需要配置健康检查和负载均衡策略,以保证高可用性。 4. 使用会话持久化可能会影响负载均衡的效果,因为某些服务器可能会处理更多的请求,特别是在不均匀的负载情况下。因此,需要权衡...
### Nginx安装与后端健康检查模块配置详解 #### 一、Nginx环境搭建与核心组件安装 **1.1 基础环境准备** - **操作系统**: CentOS 6.5 - **基本服务器配置**: 在安装过程中选择了“基本服务器”配置。 **1.2 安装...
为了实现Nginx与Java的高效协同,开发者需要了解Nginx的upstream模块配置,以及如何设置健康检查和会话持久化策略。 书中的案例涵盖了从基础的HTTP模块开发到复杂的模块设计,如URL重写、访问控制、内容过滤等。...
健康检查模块提供了丰富的配置选项,比如`interval`用于设定检查间隔,`fail_timeout`定义了连续多少次失败后认定服务器异常,`pass_timeout`则是设定多少时间内未收到响应视为成功。此外,还可以设置自定义的健康...
在这个“Ansible的健康检查模块 - Python - 下载”主题中,我们将深入探讨如何使用Python编写自定义的Ansible模块来进行系统健康检查。 首先,让我们理解Ansible模块是什么。Ansible模块是可重用的代码单元,用于...
Nginx本身并不直接支持内置的健康检查,但可以通过扩展模块如`healthcheck_nginx_upstreams-master`来实现。这个模块会周期性地向后端服务器发送探测请求,根据响应时间、HTTP状态码等指标判断服务器是否健康。如果...
总的来说,"cpp-nginx一致性哈希模块支持虚节点可动态剔除不健康节点"是提升Nginx负载均衡能力的重要工具,它通过优化的哈希策略和健康检查机制,实现了高效且稳定的服务分配,有助于构建高可用的分布式系统。...
但是,原始的`upstream`模块并不具备健康检查功能,这就是`nginx_upstream_check_module`的用武之地。 ### Nginx Upstream Check Module特性 1. **健康检查**:该模块可以定期向后端服务器发送探测请求,如...
3. **健康检查**:Consul内置健康检查功能,可以监控服务的运行状态。Nginx模块可以利用这些信息,排除故障节点,确保流量只流向健康的后端服务。 4. **负载均衡**:通过这个模块,Nginx可以实现基于Consul的服务...
接下来,`nginx-upstream-check-module`是一个用于后端服务器健康检查的Nginx模块。在高可用性架构中,确保与后端服务器的连接正常至关重要。这个模块允许Nginx定期向后端节点发送检查请求,如HTTP GET或TCP连接,...
4. 反向代理和负载均衡模块:解释如何开发实现反向代理和负载均衡的模块,包括代理策略、健康检查等。 5. 过滤器模块:学习如何开发处理HTTP响应内容的过滤器,例如修改响应头、压缩内容等。 6. 其他模块类型:如...
官方Nginx虽然默认并未内置健康检查模块,但通过第三方扩展可以实现这一功能。本文将详细讲解关于"healthcheck_nginx_upstreams-b33a846.tar.gz"这个压缩包的相关知识点,包括Nginx的健康检查模块以及如何使用。 ...
此外,Nginx还支持健康检查,自动将异常的后端服务器从负载均衡池中移除。 缓存功能也是Nginx的重要组成部分,它可以缓存静态资源,减少对后端服务器的压力。Nginx的缓存策略可以通过配置文件进行精细调整,如设置...
- **1.0.0版本**:这一版本开始支持Upstream模块,允许更灵活的后端服务器管理,增强了故障转移和健康检查功能。 5. **性能优化与新特性:** - **1.1.0版本**:Nginx继续优化性能,降低了CPU和内存使用,同时增加...
被动策略是在接收到客户端请求时,通过检查模块判断后端服务器的状态。主动策略则是定时发起探测请求,即使没有客户端请求,也会持续监控后端服务器的健康状况。这种心跳机制对于及时发现并隔离故障服务器,防止服务...
10. **健康检查**:Nginx可以定期对后端服务器进行健康检查,确保只有健康的服务器接收请求。 11. **缓存功能**:Nginx可以缓存常访问的静态资源,减少对后端服务器的请求,提高响应速度。 12. **日志管理**:...