Windows编译Nginx源码
Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊
Nginx是一款轻量级的Web 服务器、反向代理服务器、邮件服务器等等集一大串荣誉于一身的大牌人物!他是一个俄国的富家子弟,但对于老美这个邻居家的小孩Windows却不是那么和善,性格,品相各异!毕竟不是一个妈生的孩子,╮( ̄▽ ̄")╭,不是一个妈生的...命运就是那么的捉弄,越是不想发生的、越是不想见到的、越是你躲避的,他就是会跳在你面前,张牙舞爪!有一天,Nginx去老美家办事,完了,没有媒介,2人沟通不畅,磕磕绊绊,好不舒坦...
切回正题,唠叨了半天,我们来看看怎么在Windows上编译Nginx模块,我是知识的搬运工(Nginx官网方法)
准备工作:
1、下载 VS2010+ VS2010 SP1 (C++编译环境) ->安装完成
2、下载 MSYS1.0 (GNU环境)-> 安装完成
3、下载 ActivePerl(SSL环境,自行下载 64位 or 32 位)-> 安装完成
4、下载 Mercurial(Nginx源码下载器,自行下载 64位 or 32 位) -> 安装完成
5、下载 PCRE 8.39:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/(SSL相关,库函数)
6、下载 zlib1.2.8(SSL相关,库函数)
7、下载 OpenSSL 1.0.1e
操作步骤
1、获取Nginx源码:打开Cmd命令,切换到Mercurial安装目录,执行以下命令:
hg clone http://hg.nginx.org/nginx
2、安置资源包:在Nginx根目录下,创建 objs 和 lib 层级子目录,如下图层级,放入解压后的:PREC、zlib、OpenSSl

3、创建编译命令集:在Nginx根目录下,创建build.bat,文本内容如下:
auto/configure --with-cc=cl --builddir=objs --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 \
--with-cc-opt=-DFD_SETSIZE= --with-pcre=objs/lib/pcre-8.39 \
--with-zlib=objs/lib/zlib-1.2. --with-openssl=objs/lib/openssl-1.0.1e \
--with-select_module --with-http_ssl_module
4、生产MakeFile资源:运行MSYS(安装完成后,自动在桌面有快捷方式)切换到Nginx根目录,执行以下命令:
build.bat
操作如下图:
5、编译Nginx源码(过程1分半钟):运行VS2010命令行,切换到Nginx根目录,执行以下命令:
nmake -f objs/Makefile

6、收工!@@#@#@¥@#¥#……%&……*&!

by:海豚湾-丰
Windows编译Nginx源码的更多相关文章
- Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤
转载自: http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍: Nginx ("engine x")是一个 ...
- llinux 环境安装编译 nginx (源码安装包)
简介: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国 ...
- Nginx源码编译
1. 概述 有时由于添加了自己编写的c++模块,或者改了源码的一些名称.配置什么的,需要自行编译nginx. 可以先下下来源码,然后需要的话就自己改下源码或增加模块,最后再编译成linux或者wind ...
- windows 平台使用 VS2017 编译openssl源码
windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...
- Windows 10 x64 下编译 Hadoop 源码
Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...
- windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- Windows,linux下编译qt源码(比较简单)
一.linux下静态编译qt源码 1.取到qt源码并解压到文件夹 2.cd到qt目录下 3.使用configure生成makefile ./configure–prefix /opt/qtstatic ...
- 01.LNMP架构-Nginx源码包编译部署详细步骤
操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Pcre+Zlib+Openssl+Nginx 操作步骤: 一.创建目录 [root@localhost ~]# mk ...
- Nginx源码编译安装选项
[Nginx源码编译过程] make是用来编译的,它从Makefile中读取指令,然后编译. make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置. configu ...
随机推荐
- 编译器开发系列--Ocelot语言4.类型定义的检查
这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ...
- docker – 你应该知道的10件事
容器并不是一个全新的技术,但这并不妨碍Docker如风暴一样席卷整个世界. 如果你在IT圈里,你一定听说过Docker.就算与其他热门技术,如:Puppet/Chef,Hadoop或者MongoD ...
- ERROR 1300 (HY000): Invalid utf8 character string: ''
在load csv 进mysql的时候,报这个错,苦恼了很长时间,网上搜索不到答案. mysql> load data infile '/home/hdh/8_sr/8_45.csv' ...
- 【AutoMapper官方文档】DTO与Domin Model相互转换(下)
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...
- ABP框架理论研究总结(典藏版)
目前,我已经完成了Module-Zero的翻译,请查看我的<Module-Zero学习目录>. 到现在为止,使用ABP框架开发正式项目已经3个月有余了,期间翻阅了大量文档资料,包括ABP官 ...
- AWS开发人员认证考试样题解析
最近在准备AWS的开发人员考试认证.所以特意做了一下考试样题.每道题尽量给出了文档出处以及解析. Which of the following statements about SQS is true ...
- ABP框架 - 缓存
文档目录 本节内容: 简介 ICacheManager ICache ITypedCache 配置 实体缓存 EntityCache 是如何工作 Redis 缓存集成 简介 ABP提供了一个缓存接口, ...
- Entity Framework 6 Recipes 2nd Edition(11-4)译 -> 在”模型定义”函数里调用另一个”模型定义”函数
11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11 ...
- HTML&CSS日常知识点总结
HTML 标签 meta 标签永远位于文档的头部,即head元素内部 可提供有关页面的元信息,如针对搜索引擎和更新频度的描述和关键词 charset 这个属性规定在外部脚本文件中使用的字符编码 如果外 ...
- python描述符理解
Python中的描述符是一个相对底层的概念 descriptor Any object which defines the methods get(), set(), or delete(). Whe ...
