文章目录
- 第十五章 构建和配置 Nginx 以与 Web 网关配合使用 (Windows) - 为 CSP 构建 Nginx 的过程
第十五章 构建和配置 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:\nginx03/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 副本替换为构建过程创建的版本。