nginx-windows编译添加模块

1.安装环境

1.1安装MSYS2+MinGW64

1.下载msys2,官方地址:http://www.msys2.org/,这里选择64位的安装器

2.安装完成之后,先别启动msys2,在 安装根目录/etc/pacman.d/ 下找到mirrorlist.mingw32、mirrorlist.mingw64和mirrorlist.msys并进行修改。

mirrorlist.mingw32文件添加一行,Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

mirrorlist.mingw64文件添加一行,Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

mirrorlist.msys文件添加一行,Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

3.在win10菜单中找到MSYS 64bit并启动MSYS2 MinGW 64-bit

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f13186a78d.png

4.认识下命令

pacman -Syu=> 同步软件库并更新系统到最新状态

pacman -S package_name1 package_name2 => 安装或者升级单个软件包,或者一列软件包(包含依赖包)

pacman -R package_name => 删除单个软件包

pacman -Rs package_name => 删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系

5.输入pacman -Syu 更新软件库, 完结后直接点击关闭按钮来关闭窗口

6.重新来一次第2个步骤(这个时候因为更新软件库的原因导致第2个步骤里面的三个文件被覆盖了)

7.使用命令安装mingw64等必要的软件(一个一个地安装)

pacman -S gcc

pacman -S mingw-w64-x86_64-toolchain

pacman -S mingw-w64-i686-toolchain

pacman -S mingw-w64-x86_64-SDL2

pacman -S mingw-w64-i686-SDL2

pacman -S base-devel

pacman -S yasm

pacman -S nasm

pacman -S make

=1.2安装VS=
1、下载地址:https://visualstudio.microsoft.com/zh-hans/vs/ 选择社区版

在这里插入图片描述

2、安装Visual Studio,“工作负载”界面,根据自己需求选择不同的组件,因为需要make,所以只选择了“使用C++的桌面开发”,右侧“安装详细信息”,如果无特殊需求,采用默认配置即可。“语言包”默认的就是简体中文,“安装位置”根据目录修改。

在这里插入图片描述

3、等待所选组件下载完成,该过程可能比较慢,耐心等待即可。

1.3安装pcre

下载地址:https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi
注意安装路径

1.4检查环境

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-18/611cd51e7f8ae.png

1.4下载nginx源码与相关的包

下载地址:https://codeload.github.com/nginx/nginx/zip/refs/tags/release-1.20.1
http://nginx.org/download/nginx-1.20.1.tar.gz

下载zlib:http://www.zlib.net/zlib-1.2.11.tar.gz

下载PCRE:https://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz

下载opensll:http://distfiles.macports.org/openssl/openssl-1.1.1j.tar.gz

filter模块:git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module

注意:

1.PCRE请下载pcre-8系列,不要下载pcre2系列,要不然根本就无法编译过。

2.三个PCRE、zlib和OpenSSL的时候,请下载.tar.gz结尾的源码包,不要下载.zip的压缩包。

2.编译安装

2.1 创建相关目录解压到相应路径下

解压建议使用7-zip如果没有安装一个

创建D:\snt\soft\nginx
将nginx源码解压到该路径

到nginx路径下创建nginx-install,可以用命令也可以在图形界面操作

admin@DESKTOP-I77Q7HO MINGW64 ~
$ cd D:/snt/soft/nginx/

admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/
$ ls
nginx-1.20.1

admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/nginx-1.20.1
$ mkdir nginx-install

admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/nginx-1.20.1
$ ls
nginx-1.20.1  nginx-install
admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/nginx-1.20.1
$ cd nginx-1.20.1

admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/nginx-1.20.1
$ ls
auto  conf  contrib  docs  misc  src

admin@DESKTOP-I77Q7HO MSYS /d/snt/soft/nginx/nginx-1.20.1
$ ls auto/
cc          feature       include  make     options  summary
configure   have          init     module   os       threads
define      have_headers  install  modules  sources  types
endianness  headers       lib      nohave   stubs    unix

将模块和需要的包解压到D:\snt\soft\nginx\nginx-1.20.1\objs\lib路径下,如果没有这个文件夹请自行创建

在这里插入图片描述

2.2 编译

2.2.1 生成Makefile

注意这里需要使用msys软件注意选择64位

admin@DESKTOP-I77Q7HO MINGW64 /d/snt/soft/nginx/nginx-1.20.1
$ auto/configure \
 --prefix="D:/snt/soft/nginx/nginx-install" \
 --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/pcre-8.45 \
 --with-zlib=objs/lib/zlib-1.2.11 --with-openssl=objs/lib/openssl-1.1.1j \
 --with-openssl-opt=no-asm --with-http_ssl_module \
 --with-http_sub_module --add-module=objs/lib/ngx_http_substitutions_filter_module

在这里插入图片描述

出现以下显示为正常

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-18/611cc620120ef.png

2.2.2 编译

接下来继续执行命令:

注意这里需要使用vs,因为编译过程中需要系统的一些库。
在这里插入图片描述

cd D:\snt\soft\nginx\nginx-1.20.1\

nmake -f objs/Makefile

在这里插入图片描述

执行时间比较久,是正常的。如果没有报错,过几分钟,提示找不到引用sed,sed命令没执行没关系,exe就生成在了nginx-1.20.1\objs\目录下了。

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f25298254f.png

2.2.3 创建nginx安装目录并启动

完成后执行:

1.新建nginx-install文件夹(如果已经创建请忽略)

2.拷贝源码中的conf、contrib目录到nginx-install

3.拷贝官方编译好的版本中的html目录到nginx-install

下载地址:http://nginx.org/download/nginx-1.20.1.zip

4.拷贝objs目录中生成的nginx.exe

5.新建logs和temp还有ssl文件夹

6.创建crt和key,到ssl目录
在D:\nginx下创建ssl文件夹 用于存放证书 创建私钥 (建议使用系统窗口,不要用gitBash 有涉及到选择的地方,gitBash无法选择)

openssl genrsa -des3 -out shidian.key 1024 //shidian 自己取的名字

在这里插入图片描述
这两步需要输入密码,输入密码后,再次重复输入确认密码。记住此密码,后面会用到。

Enter pass phrase for shidian.key:
Verifying - Enter pass phrase for shidian.key:

在这里插入图片描述
查看ssl目录中的key:

在这里插入图片描述
创建 csr 证书

openssl req -new -key shidian.key -out shidian.csr (key文件为刚才生成的文件,shidian.csr为自定义文件名)

在这里插入图片描述
如上图所示,执行上述命令后,需要输入信息。输入的信息中最重要的为 Common Name,这里输入的域名即为我们要使用https访问的域名。

查看csr文件:
以上步骤完成后,ssl文件夹内出现两个文件
在这里插入图片描述
去除密码

在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。

复制shidian.key并重命名为shidian.key.org

可以使用此命令行,也可以使用鼠标操作 copy shidian.key shidian.key.org

去除口令,在命令行中执行此命令: openssl rsa -in shidian.key.org -out shidian.key (shidian为自定义文件名)

如下图所示,此命令需要输入刚才设置的密码

在这里插入图片描述
生成crt证书 openssl x509 -req -days 365 -in shidian.csr -signkey shidian.key -out shidian.crt
在这里插入图片描述
最后生成证书如下:

在这里插入图片描述
测试
修改nginx配置
修改配置文件之前记得备份

upstream nodejs__upstream2 {
	server 127.0.0.1:8080; # 需要监听的端口名 我用的
	keepalive 64;
}

server {
	listen 443 ssl;
	server_name localhost; # 配置的https的域名

	ssl_certificate      D:/soft/soft/nginx-1.20.1/ssl/shidian.crt;  # 这个是证书的crt文件所在目录
	ssl_certificate_key  D:/soft/soft/nginx-1.20.1/ssl/shidian.key;  # 这个是证书key文件所在目录

	ssl_session_cache    shared:SSL:1m;
	ssl_session_timeout  5m;

	ssl_ciphers  HIGH:!aNULL:!MD5;
	ssl_prefer_server_ciphers  on;

 location / {
     root   html;
     index  index.html index.htm;
           }                   
 }
}

重启ngingx

.\nginx.exe -s reload

在这里插入图片描述
访问https://127.0.0.1/ 进行测试
在这里插入图片描述

或者直接拷贝已经创建号的crt和key到ssl目录下

7.查看目录

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f23ad9101f.png

这个可以启动nginx.exe查看是否报错,访问localhost或者127.0.0.1。

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f20c654cae.png

查看https是否成功:
将配置文件中443的注释取消,并添加crt和key

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      D:/snt/soft/nginx/nginx-install/ssl/server.crt;
    ssl_certificate_key  D:/snt/soft/nginx/nginx-install/ssl/server.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

重启nginx.exe

admin@DESKTOP-I77Q7HO MINGW64 /d/snt/soft/nginx/nginx-install
$ ./nginx.exe -s reload

在这里插入图片描述

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f12149a03e.png

查看版本与模块

admin@DESKTOP-I77Q7HO MINGW64 /d/snt/soft/nginx/nginx-install
$ ./nginx.exe -V

http://192.168.10.61:9001/server/../Public/Uploads/2021-08-20/611f11f43d44b.png

此时Nginx便安装到了D:/snt/soft/nginx/nginx-install目录下。

参考文档

https://blog.csdn.net/qq_24054301/article/details/112131057

https://www.zeelis.com/t/289.html

https://blog.csdn.net/weixin_34387468/article/details/90104406

https://blog.csdn.net/skymouse2002/article/details/88971071?share_token=2bb5274e-9aa4-46c5-aca1-f12ea625623c&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_android&utm_campaign=client_share

参考文档
https://www.cnblogs.com/jiangwangxiang/p/8481661.html

https://blog.csdn.net/renanrenan/article/details/83304557

https://www.cnblogs.com/luxiaoyao/p/10034009.html

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Windows上部署nginx-http-flv-module,您需要按照以下步骤进行操作: 1. 首先,确保您的Windows系统已经安装了相应的编译环境,如CMake、MinGW等。您可以通过官方网站下载并安装这些软件。 2. 下载最新的nginx源代码,并解压到一个您方便操作的路径。 3. 下载nginx-http-flv-module源代码,解压到和nginx源代码相同的目录下。 4. 打开一个命令行终端,进入到nginx源代码的目录下。 5. 运行以下命令进行配置和编译:./configure --with-http_flv_module --with-http_ssl_module --with-cc=cl --builddir=objs --prefix=YOUR_INSTALL_PATH 其中,--with-http_flv_module用于指定启用http-flv模块,--with-http_ssl_module用于启用SSL模块,--with-cc=cl用于指定编译器为Microsoft Visual C++,--prefix=YOUR_INSTALL_PATH用于指定安装路径。 6. 运行make命令,进行编译。 7. 编译完成后,运行make install进行安装。安装完成后,您可以在YOUR_INSTALL_PATH目录下找到已安装的nginx。 8. 进入到已安装的nginx目录,找到conf/nginx.conf文件,并用文本编辑器打开。 9. 在http中添加如下配置: ``` flv { server { listen 8080; flv_live on; } } ``` 这样设置将启用flv模块,并在8080端口上监听请求。 10. 保存并关闭nginx.conf文件。 11. 运行nginx.exe启动nginx服务。 您现在已经成功部署了nginx-http-flv-module。您可以在浏览器中通过http://localhost:8080访问您的http-flv流。记得根据您的实际需求来进行配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值