nginx安装第三方模块nginx_upstream_check_module报错

本文详细记录了解决在nginx1.16.1上安装nginx_upstream_check_module模块时遇到的错误过程,包括删除旧源码、重新解压、打补丁、配置模块、编译安装等步骤。

nginx1.16.1安装nginx_upstream_check_module提示如下错误

原因:

       我安装的nginx版本为1.16.1,在安装nginx_upstream_check_module模块时忘记修改补丁文件版本(先安装了1.5.12+,后面发现错了又安装1.16.1+),导致在在make时报错

解决办法

      1:删除nginx源码文件

            rm -rf /usr/local/src/nginx-1.16.1

      2:重新解压nginx,并拷贝到/usr/local/src目录

           tar -zxvf nginx-1.16.1.tar.gz 

           mv nginx-1.16.1 /usr/local/src/

      3:解压并拷贝nginx_upstream_check_module模块到/usr/local/src目录下

          unzip master.zip 

          mv nginx_upstream_check_module-master /usr/local/src/

      4:/usr/local/src下查看nginx源码文件及nginx_upstream_check_module模块文件

          

     5:打补丁

          patch  -p1 < ../nginx_upstream_check_module-master/check_1.16.1+.patch

          

     6:查看已安装模块

          

    7:配置nginx模块

        ./configure --with-http_stub_status_module --add-module=../nginx_upstream_check_module-master

   

       注:不要忘记已安装模块

   8:编译,安装

         make && make install 

         

    9:查看已安装模块,检查是否已安装

         

    10:验证是否安装成功

         a、upstream 模块添加如下参数

               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;

               

          b、server模块添加location配置

               location /status {
                   check_status;
               }

               

         c、重载nginx配置文件

              ./sbin/nginx -s reload

         d、验证是否成功

              看到如下图表名模块已安装成功

              

### Nginx Windows 下使用 ngx_http_upstream_check_module 模块 Nginx 的 Windows 版本默认并不包含第三方模块,如 `ngx_http_upstream_check_module`。该模块用于主动健康检查,能够定期探测后端服务器状态,并在服务器不可用时将其从负载均衡池中隔离,从而提升系统的稳定性和可用性。在 Windows 环境下使用该模块,需要手动编译或寻找已经集成该模块Nginx 构建版本。 由于官方提供的 Windows Nginx 发行版通常不包含此模块,因此用户需要自行编译 Nginx 并在配置中添加 `--add-module` 参数指向 `ngx_http_upstream_check_module` 的源码路径。例如: ```bash ./configure --with-http_ssl_module --add-module=/path/to/ngx_http_upstream_check_module ``` 在 Windows 上进行编译时,通常需要借助 MSYS 或 Cygwin 工具链,或者使用第三方构建工具链来完成。此外,也可以寻找社区维护的 Windows 构建版本,这些版本可能已经集成了 `ngx_http_upstream_check_module` 模块。 配置文件中可以使用如下方式定义带有健康检查的 upstream 块: ```nginx upstream backend { server 172.16.0.23:80; server 172.16.0.24:80; check interval=3000 rise=2 fall=3 timeout=1000 type=http; check_http_send "HEAD / HTTP/1.0\r\n\r\n"; check_http_expect_alive http_2xx http_3xx; } ``` 此配置表示每 3 秒检查一次后端服务器,连续 2 次成功标记为可用,连续 3 次失败标记为不可用,超时时间为 1 秒,并且通过 HTTP 请求进行探测。该模块的健康检查机制相较于默认的被动检查更为及时和主动,能有效避免请求发送到故障节点上[^4]。 --- ### 示例配置:使用 ngx_http_upstream_check_module ```nginx http { upstream cluster { server 172.16.0.23:80; server 172.16.0.24:80; check interval=5000 rise=2 fall=3 timeout=2000 type=http; check_http_send "GET /health HTTP/1.0\r\n\r\n"; check_http_expect_alive http_2xx; } server { listen 80; server_name example.com; location / { proxy_pass http://cluster; } } } ``` 上述配置中,Nginx 将每隔 5 秒向后端服务器发送一个 `/health` 请求进行健康检查。如果连续 3 次失败,则将该服务器标记为不可用;如果连续 2 次成功,则重新启用该服务器。该配置可以有效提升系统的可用性[^4]。 --- ### 注意事项 - 在 Windows 上构建 Nginx 并集成第三方模块时,需要确保开发环境配置正确,包括编译器、依赖库等。 - 由于官方未提供集成 `ngx_http_upstream_check_module` 的 Windows 构建版本,建议使用社区维护的构建版本或自行编译。 - 使用 `ngx_http_upstream_check_module` 模块时,需要在配置中明确启用并设置健康检查参数,以实现主动探测功能[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值