第十五章 构建和配置 Nginx 以与 Web 网关配合使用 (Windows) - 为 CSP 构建 Nginx 的过程
- 在
MSYS2 shell
中工作,创建Nginx
文档中建议的工作目录结构:
/opt/
- 在
/opt
中工作,使用以下命令查看Nginx
源代码:
hg clone http://hg.nginx.org/nginx
这会将 Nginx
源代码放置在:/opt/nginx/
下
- 为
CSP
扩展创建目录:
mkdir /opt/nginx/objs/lib/csp/
- 将模块源代码
(ngx_http_csp_module.c)
复制到上一步中创建的目录。 - 在同一目录中,创建一个名为
config.json
的配置文件。该文件应包含以下行:
ngx_addon_name=ngx_http_csp_module
HTTP_MODULES="$HTTP_MODULES ngx_http_csp_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_csp_module.c"
- 在
/opt/nginx/
中,配置Nginx
构建环境:
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=1024 --without-http_rewrite_module
--without-http_gzip_module
--with-select_module --with-ipv6
--add-module=objs/lib/csp
请注意最后一行包含包含 CSP 模块的说明。
- 编译
Nginx
。这可以在当前的MSYS2 shell
或Visual Studio
开发人员命令提示符中完成。
要使用 MSYS2 shell
,请找到与所需 Visual Studio
构建环境相对应的 vcvarsall.bat
脚本并编译 Nginx
。
cd /c/path/to/vcvarsall
vcvarsall.bat
cd -
nmake -f objs/Makefile
或者,如果不知道在哪里可以找到 vcvarsall.bat
,可以打开 Visual Studio
开发人员命令提示符,它将为您设置构建环境。首先,将 MSYS2
路径转换为当前 MSYS2 shell
中的等效 Windows
路径。
cygpath –m $(pwd)
然后,打开所需构建环境的 Visual Studio
命令提示符并导航到该 Windows
路径。编译 Nginx
。
nmake -f objs/Makefile
如果成功,您应该在以下位置找到服务器(nginx.exe):/opt/nginx/objs/
- 安装
Nginx
:最简单的方法是首先下载并安装Nginx for Windows
的预构建版本以获取目录结构(通常位于C:\nginx\
下),然后将安装中的nginx.exe
文件替换为本地创建的一个。
Nginx
安装的典型目录结构如下:
Directory of C:\nginx
03/07/2017 09:09 <DIR> .
03/07/2017 09:09 <DIR> ..
26/06/2017 10:14 <DIR> conf
26/06/2017 10:14 <DIR> contrib
10/05/2018 12:53 <DIR> csp
26/06/2017 10:14 <DIR> docs
26/06/2017 10:14 <DIR> html
10/05/2018 15:57 <DIR> logs
04/07/2017 15:52 715,264 nginx.exe
26/06/2017 10:17 <DIR> scgi_temp
26/06/2017 10:17 <DIR> temp
26/06/2017 10:17 <DIR> uwsgi_temp
将此目录中的 nginx.exe
副本替换为构建过程创建的版本。