nginx_upstream_check_module Windows端nginx心跳检测模块编译和打包

要在Windows上使用MinGW编译包含心跳检测模块的Nginx可执行文件(nginx.exe),您需要下载和配置Nginx源代码和所需模块源代码,并使用MinGW进行编译。以下是详细步骤:

1:准备编译环境

  1. 安装MinGW

    • 下载并安装MinGW,确保安装gcc, g++, make, 和其他必要的开发工具。
  2. 安装nmake

    • nmake是Microsoft的make工具,通常随Visual Studio一起安装。如果没有Visual Studio,可以从Microsoft官方资源下载独立的nmake工具。
  3. 下载Nginx源代码

    • nginx/branches下载与您当前使用的Nginx版本匹配的源代码包。
      在这里插入图片描述
  4. 下载心跳检测模块源代码

  5. 下载依赖库源代码
    -PCREzlibOpenSSL库源。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2:解压和准备源代码

  1. 解压源代码

    • 将Nginx源代码和心跳检测模块源代码解压到同一个目录。例如,创建一个目录C:\nginx_build,然后解压到该目录中。
  2. 结构示例

    C:\nginx_build
    ├── nginx-1.20.0
    	└── openssl-3.3.0.tar.gz
     	└── pcre2-10.37.tar.gz
     	└── zlib-1.3.1.tar.gz
    └── nginx_upstream_check_module
    
    
    

3:配置和编译Nginx

  1. 打开MinGW终端

    • 打开MinGW终端(msys),并导航到Nginx源代码目录。例如:
      cd /c/nginx_build/nginx-1.20.0
      
  2. 准备依赖库

    • 创建 build 和 lib 目录,并将 zlib、PCRE 和 OpenSSL 库源解压到 lib 目录中
      mkdir objs 
      mkdir objs/lib 
      mv pcre2-10.37.tar.gz objs/lib
      mv zlib-1.3.1.tar.gz objs/lib
      mv openssl-3.3.0.tar.gz objs/lib
      cd objs/lib 
      tar -xzf pcre2-10.37.tar.gz
      tar -xzf zlib-1.3.1.tar.gz 
      tar -xzf openssl-3.3.0.tar.gz
      
  3. 应用补丁(如果需要)

    • 有些第三方模块可能需要对Nginx源代码进行补丁处理。检查模块的文档,看看是否需要应用补丁。
    • 示例补丁命令:
      patch -p1 < /c/nginx_build/nginx_upstream_check_module/check_1.20.1+.patch
      
      在这里插入图片描述
  4. 配置Nginx

    • 运行configure脚本,指定心跳检测模块:

      auto/configure --with-cc=cl --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log \--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre2-10.37 --with-zlib=objs/lib/zlib-1.3.1 --with-openssl=objs/lib/openssl-3.3.0 --with-openssl-opt=no-asm --with-http_ssl_module  --add-module=../nginx_upstream_check_module 
      

      在这里插入图片描述

    • 命令行执行成功效果图:
      在这里插入图片描述

  5. 编译Nginx

    • 使用nmake编译Nginx,以管理员身份运行“x86 Native Tools Command Prompt for VS 2022”:
      cd C:\nginx_build\nginx-1.20.0
      nmake
      
      在这里插入图片描述

4:安装和验证Nginx

  1. 安装Nginx

    • 在Windows上没有标准的安装路径。您可以将编译生成的Nginx二进制文件和相关文件复制到目标目录,例如C:\nginx
    • 将生成的nginx.exe文件复制到C:\nginx\目录中,并复制配置文件、HTML文件等。
  2. 配置Nginx进行心跳检测

    • 编辑Nginx配置文件nginx.conf,添加心跳检测配置。
    • 示例配置:
      http {
          upstream backend {
              server 127.0.0.1:8080;
              server 127.0.0.1:8081;
      
              check interval=3000 rise=2 fall=5 timeout=1000 type=http;
          }
      
          server {
              listen 80;
      
              location / {
                  proxy_pass http://backend;
              }
      
              location /nginx_status {
                  stub_status;
                  allow 127.0.0.1;
                  deny all;
              }
          }
      }
      
  3. 启动Nginx

    • 打开命令提示符,导航到C:\nginx目录,并运行以下命令启动Nginx:
      nginx.exe
      
  4. 验证心跳检测

    • 在浏览器中访问http://localhost/nginx_status,您应该能看到Nginx的状态页面,其中包含心跳检测的相关信息。

注意事项

  • 依赖库:确保MinGW和Nginx源代码中所有依赖库都已正确安装和配置。
  • 补丁:有些第三方模块可能需要对Nginx源代码进行补丁处理。确保按照模块文档中的说明应用必要的补丁。
  • 兼容性:由于Nginx主要为类Unix系统设计,在Windows上的某些功能可能有兼容性问题。确保所有功能在Windows环境中正常工作。

常见编译问题

  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值