参照官网http://nginx.org/en/docs/howto_build_on_win32.html提前下载好编译所需软件
- Microsoft Visual C compiler. Microsoft Visual Studio® 8 and 10 are known to work.
- MSYS.
- Perl, if you want to build OpenSSL® and nginx with SSL support. For example ActivePerl or Strawberry Perl.
- Mercurial client.
1、下载Nginx源码(http://hg.nginx.org/)和nginx-http-flv-module(https://github.com/winshining/nginx-http-flv-module)源码
注意:官网下载的Nginx版本不支持windows下编译,提示错误:
2、下载依赖库
PCRE:https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
ZLIB:http://zlib.net/zlib-1.2.11.tar.gz
OPENSSL:https://www.openssl.org/source/openssl-1.1.1c.tar.gz
3、解压文件,目录结构如下(objs/lib目录需自行创建):
4、启动MSYS,进入目录nginx-1.17.8,执行脚本(请提前自行创建目录logs、temp\client_body_temp、temp\proxy_temp、temp\fastcgi_temp、temp\scgi_temp,否则执行脚本会提示目录不存在):
auto/configure \
--with-cc=cl \
--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.43 \
--with-zlib=objs/lib/zlib-1.2.11 \
--with-openssl=objs/lib/openssl-1.1.1c \
--with-openssl-opt=no-asm \
--with-http_ssl_module \
--add-module=objs/lib/nginx-http-flv-module
脚本执行如果提示
auto/cc/msvc: line 117: [: : integer expression expected
打开auto/cc/msvc文件,添加如下代码:
上述命令是生成可以通过VS的nmake编译的Makefile,文件生成objs/Makefile
5、打开VS工具命令提示符环境
切换到Nginx源码根目录,执行命令
nmake –f objs/Makefile
命令完成后如下:
至此,Nginx编译完成。打开objs目录,显示如下:
6、整理Nginx发布环境
将源码目录下的conf、contrib、html、logs、temp和objs\nginx.ex整理到一个目录下
启动nginx.exe,一个完整的流媒体服务器就搭建起来了,运行截图: