Nginx 第三方健康检测模块的使用

这篇具有很好参考价值的文章主要介绍了Nginx 第三方健康检测模块的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ngx_http_upstream_check_module 模块

模块开源地址:https://github.com/yaoweibin/nginx_upstream_check_module

官网介绍:http://tengine.taobao.org/document_cn/http_upstream_check_cn.html

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

Nginx 健康检测机制对比

nginx自带健康检查机制 第三方ngx_http_upstream_check_module模块
被动健康检查 提供主动式后端服务器健康检查的功能
访问时才对后端进行探活且无法预警,影响效率 时间间隔内主动探活,后端不可用,请求不会转发到故障节点,故障节点恢复后请求正常转发

Nginx 编译安装

环境说明

  • Centos7.9 最小化安装
  • 未安装 Nginx
  1. 新建临时文件夹,用于存放相关安装包和源码包
mkdir -p /tmp/nginx
cd /tmp/nginx
# 下载第三方模块的最新包
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 解压第三方模块包
unzip master
# 进入解压后的目录,可以看到相关补丁包的版本,下载的nginx源码包不能大于这些补丁包,不然用不起模块

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 下载 nginx 源码包
# 下载1.16.1的源码包即可
wget http://nginx.org/download/nginx-1.16.1.tar.gz
# 解压源码包
tar -xf nginx-1.16.1.tar.gz

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 准备编译环境
# 有外网的条件下配置好国内的yum源;没有外网的条件下可以在有外网的系统里用yum下载相关rpm包拷贝到没网的进行处理
# 需要的依赖包有:gcc、pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel、
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 补丁包操作(重要操作)
# 进入解压后的 nginx 源码目录
cd nginx-1.16.1
# 补丁包操作
patch -p1 < /tmp/nginx/nginx_upstream_check_module-master/check_1.16.1+.patch

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 编译安装 nginx
# 根据自己所需加上编译的选项以及模块
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp  --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/tmp/nginx/nginx_upstream_check_module-master

# 编译安装:等待完成即可
make && make install

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 启动 nginx
# 编译后的 nginx配置文件
cd /etc/nginx/
# 启动文件位置/usr/sbin/nginx
cd /usr/sbin
./nginx
# 启动如遇报错信息:nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# 创建该文件夹即可:这是我自己编译选项有这个导致的

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 访问验证
# 查看nginx的 开启模块
nginx -V
# 浏览器访问IP地址进行访问

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

Nginx 探活测试

  1. 准备三台后端服务器
# 后端三台服务器:修改一个index,标记一下
192.168.137.3
192.168.137.4
192.168.137.5

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 设置前置nginx代理到后端3台服务器
# 设置后访问前置nginx
# 可以看到目前代理到后端服务器1上面了

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 设置第三方模块的探活参数:相关参数和选项可参考模块官网说明
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;


# 增加location
location /status {
check_status;
access_log off;
                   }

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 重启前置 nginx
nginx -s reload
  1. 访问验证探活:IP地址/ststus

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 停掉一台后端服务器,观察探活结果

nginx check模块,Linux运维日常,linux,运维,云计算,nginx

  1. 启动停掉的后端服务器,观察探活结果

nginx check模块,Linux运维日常,linux,运维,云计算,nginx文章来源地址https://www.toymoban.com/news/detail-770355.html

总结

  • 编译安装在没有外网的环境下存在很多依赖性问题
  • 第三方模块版本和nginx的版本存在一定的兼容性,需要提前确定
  • 生产环境如果要更改前置nginx的安装模式重新安装,需要注意编译安装的选项和需要编译的模块,尽量做到一致

到了这里,关于Nginx 第三方健康检测模块的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 避免使用第三方工具完成电脑环境检测

    在之前配置各种深度学习环境的时候经常需要先检测一下电脑的软硬件环境,其实整个过程比较重复和固定,所以我们是否有可能一键检测Python版本、PIP版本、Conda版本、CUDA版本、电脑系统、CPU核数、CPU频率、内存、硬盘等内容这是很多Deepper苦恼的。这里会从软件开始介绍,

    2024年02月10日
    浏览(50)
  • nginx upstream server主动健康检测模块添加https检测功能[完整版]

      前面的《nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析》系列已经分析了ngx_http_upstream_check_module的实现原理,并且在借助这个模块的框架实现了一个udp健康检测的新功能。   但是ngx_http_upstream_check_module还缺乏基于https监测上游服务器健康状况

    2024年02月19日
    浏览(28)
  • Python第三方库(模块)下载和安装(使用pip命令)

    Python第三方库是由社区开发者编写的代码包,用于增强Python的功能和提供各种特定的功能。通常,这些库被打包为模块,可以通过使用Python包管理工具pip来下载和安装。 以下是使用pip下载和安装Python第三方库的详细步骤: 步骤1:检查Python环境和pip的安装情况 在安装Python第三

    2023年04月08日
    浏览(34)
  • nginx upstream server主动健康监测模块添加https检测功能【上】

      前面的《nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析》系列已经分析了ngx_http_upstream_check_module的实现原理,并且在借助这个模块的框架实现了一个udp健康检测的新功能。   但是ngx_http_upstream_check_module还缺乏基于https监测上游服务器健康状况

    2024年02月20日
    浏览(26)
  • 031-安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    1、三方库-JQuery-使用安全 2、打包器-WebPack-使用安全 演示案例: ➢打包器-WebPack-使用安全 ➢第三方库-JQuery-使用安全 创建WebPack,并创建目录src在目录下创建1.js 2.js 1.js 2.js 在创建index.html 由于js相互依赖的顺序不同,造成无法执行 ; 使用 Webpack 的主要原因: 模块化支持 :

    2024年02月22日
    浏览(40)
  • Day31:安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    目录 打包器-WebPack-使用安全 第三方库-JQuery-使用安全 思维导图 JS知识点: 功能:登录验证,文件操作, SQL 操作,云应用接入,框架开发,打包器使用等 技术:原生开发, DOM ,常见库使用,框架开发( Vue , NodeJS ),打包器 ( Webpack ) 等 安全:原生开发安全, NodeJS 安全,

    2024年03月14日
    浏览(42)
  • python第三方模块之yaml模块

    安装: PyYaml 5.1之后,通过禁止默认加载程序(FullLoader)执行任意功能,该load函数也变得更加安全。 使用: config.yaml

    2024年01月21日
    浏览(26)
  • redis(其它操作、管道)、django中使用redis(通用方案、 第三方模块)、django缓存、celery介绍(celery的快速使用)

    1 redis其它操作 2 redis管道 3 django中使用redis 3.1 通用方案 3.2 第三方模块 4 django缓存 5 celery介绍 5.1 celery的快速使用

    2024年02月07日
    浏览(40)
  • Python第三方模块:pymongo模块的用法

    pymongo模块是python操作mongo数据的第三方模块,记录一下常用到的简单用法。 首先需要连接数据库: MongoClient():该方法第一个参数是数据库所在地址,第二个参数是数据库所在的端口号 authenticate():该方法第一个参数是数据库的账号,第二个参数是数据库的密码 第一行代码表

    2024年02月09日
    浏览(47)
  • python--pip换源以及第三方模块安装

    pip install django 国外地址,速度慢 pip install django -i http://pypi.douban.com/simple/ 统一修改,以后都走豆瓣源 配置步骤: 1 去‘C:Usersxxxx’路径,在地址栏输入 %APPDATA% 敲回车,进入‘C:UsersxxxxAppDataRoaming’目录 2 新建 pip 文件夹并在文件夹新建pip.ini文件 3 新增 pip.ini 配置文件内

    2023年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包