本文参考实施验证后记录

Windows编译OpenResty并加入正向代理

1、准备相关资源文件

下载OpenResty最新源码包

https://openresty.org/download/openresty-1.19.3.1.tar.gz

下载正向代理源码包,注意如果openresty是最新版本,则正向代理也下载最新版本

https://github.com/chobits/ngx_http_proxy_connect_module/releases

下载msys2

https://www.msys2.org

下载依赖库

打开文件:OpenResty源码包/util/build-win32.sh

这里面列出了当前OpenResty版本所需的依赖库,需要手动下载:

# wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
# wget http://zlib.net/zlib-1.2.11.tar.gz
# wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
注意版本一定要对应正确,否则无法编译

下载其他依赖工具strawberryperl

https://strawberryperl.com/

所有文件下载完后如下:

Windows编译OpenResty并加入正向代理_正向代理

2、搭建编译环境

2.1、安装msys2

自行安装

2.2、设置包管理国内镜像

这一步不是必须的,不设置镜像只是后续操作下载速度会很慢。
找到msys2的安装目录,继续转到etc\pacman.d目录下,用记事本打开下列文件:
①编辑mirrorlist.mingw32文件
首行添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/ ②编辑mirrorlist.mingw64文件
首行添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ ③编辑mirrorlist.msys文件
首行添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ 回到msys2的安装目录打开msys2.exe执行 pacman -Sy 刷新软件包数据。

2.3、安装mingw

在msys2的安装目录打开msys2.exe执行如下命令:

①:编译64位安装
pacman -S mingw-w64-x86_64-toolchain
②编译32位安装
pacman -S mingw-w64-i686-toolchain
一路回车或按y完成安装

2.4、安装必要的工具

在msys2的安装目录打开msys2.exe执行如下语句:

①pacman -S make
②pacman -S patch

3、开始编译

3.1、放置源码

①将openresty源码解压放至msys2的安装目录下。
②将openssl-1.1.1g.tar.gz、zlib-1.2.13.tar.gz、pcre/pcre-8.44.tar.gz放至msys2的安装目录下。
③将ngx_http_proxy_connect_module-master.zip源码解压放至msys2的安装目录下,文件夹名称为ngx_http_proxy_connect_module。

3.2、configure加入正向代理模块语句

使用记事本打开openresty源码目录下的util的build-win32.sh文件,在该位置加入自定义的模块,并且加入正向代理所需的补丁包,修改后./configure命令内容如下:

./configure \
    --with-cc=gcc \
    --with-ipv6 \
    --prefix= \
    --with-cc-opt='-DFD_SETSIZE=1024' \
    --sbin-path=nginx.exe \
    --with-pcre-jit \
    --without-http_rds_json_module \
    --without-http_rds_csv_module \
    --without-lua_rds_parser \
    --with-ipv6 \
    --with-stream \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module \
    --with-http_v2_module \
    --without-mail_pop3_module \
    --without-mail_imap_module \
    --without-mail_smtp_module \
    --with-http_stub_status_module \
    --with-http_realip_module \
    --with-http_addition_module \
    --with-http_auth_request_module \
    --with-http_secure_link_module \
    --with-http_random_index_module \
    --with-http_gzip_static_module \
    --with-http_sub_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --with-http_gunzip_module \
    --with-select_module \
    --with-luajit-xcflags="-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT" \
    --with-pcre=objs/lib/$PCRE \
    --with-zlib=objs/lib/$ZLIB \
    --with-openssl=objs/lib/$OPENSSL \
	--add-module=../ngx_http_proxy_connect_module
	
patch -d build/nginx-1.19.3/ -p 1 < ../ngx_http_proxy_connect_module/patch/proxy_connect_rewrte_101504.patch
make && make install

Windows编译OpenResty并加入正向代理_源码包_02

3.3、使用mingw编译

①在msys2的安装目录打开mingw64.exe或mingw32exe(需要编译64位打开前者,32位打开后者),cd到openresty源码目录,执行:util/build-win32.sh

注意在该执行命令窗口中,[/]的路径代表当前msys2安装的的路径

②等待执行成功

报错案例:

第一个:

Windows编译OpenResty并加入正向代理_源码包_03

说明有包包不存在,这里是openssl包(其他包出现问题是一样的道理),则检查是否正确完成3.1步骤,然后检查openresty源码/util/build-win32.sh文件中这几个名称是否和我们下载包的名称一致:

Windows编译OpenResty并加入正向代理_Server_04

如果不正确则人工修正即可。

第二个:

Windows编译OpenResty并加入正向代理_Server_05

说明正向代理包有问题,切换正向代理包版本后再尝试

4、验证

前面打包完成后,在msys的openresty目录中就会得到打包好的内容。如下:

Windows编译OpenResty并加入正向代理_Server_06

然后即可开始验证nginx各项功能是否正常,此步骤自行验证即可。

附带:编译好的windows包:

链接:https://pan.baidu.com/s/1sDzv7aoQZwovNefRGPK09A 提取码:dl6j

编译所需全部资源:

链接:https://pan.baidu.com/s/1PltaRqbJEeru57wU7thTow 提取码:dwli

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windows