Nginx Windows下编译和安装

时间:2024-04-02 14:43:44

参照官网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下编译,提示错误:

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目录需自行创建):

Nginx Windows下编译和安装

Nginx Windows下编译和安装

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

Nginx Windows下编译和安装

打开auto/cc/msvc文件,添加如下代码:

Nginx Windows下编译和安装

上述命令是生成可以通过VS的nmake编译的Makefile,文件生成objs/Makefile

5、打开VS工具命令提示符环境

Nginx Windows下编译和安装

切换到Nginx源码根目录,执行命令

nmake –f objs/Makefile

命令完成后如下:

Nginx Windows下编译和安装

至此,Nginx编译完成。打开objs目录,显示如下:

Nginx Windows下编译和安装 

6、整理Nginx发布环境

将源码目录下的conf、contrib、html、logs、temp和objs\nginx.ex整理到一个目录下

Nginx Windows下编译和安装

启动nginx.exe,一个完整的流媒体服务器就搭建起来了,运行截图:

Nginx Windows下编译和安装