第十四章 构建和配置 Nginx 以与 Web 网关配合使用 (Windows)
本页介绍如何构建和配置 Nginx Web
服务器以与 Windows
上的 InterSystems Web Gateway
配合使用。 (在 Windows
上,其他选项是 Apache
和 IIS
;其他操作系统上的选项有所不同。)
Nginx
是一个开源产品。源代码可以免费下载:http://nginx.org/
一些预构建的工具包可用于 Windows
,通常比最新的 Nginx
版本晚一些版本。然而,由于扩展必须编译到 Nginx
核心中,因此有必要从源代码本地构建 Web
服务器,以包含对 CSP
的支持。
完成本页面中的步骤后,可以使用 Web Gateway
管理页面进一步配置 Web Gateway
。
Assumptions
此页面假设
-
CSP/Web Gateway
组件安装在install-dir\csp\
中 -
Web
服务器安装在C:\nginx\
如果系统上的布局不同,请根据需要修改配置指令。
安装
Web Gateway
组件和 CSP
静态文件应按如下方式安装:
-
Web
网关网络服务守护进程 (NSD - Network Service Daemon
)
-
CSPnsd.exe
(主二进制文件) -
CSPnsdSv.exe
(Windows
服务)
这些文件的默认位置是 install-dir\bin
配置和日志文件写入此目录中。
-
HyperEvents
组件
CSPBroker.js
CSPxmlhttp.js
这些文件的默认位置是 install-dir\csp\broker
如果这些文件要直接由Web
服务器作为静态组件,请将它们复制到C:\nginx\html\csp\broker
- 管理门户使用的各种静态资源
管理门户需要大量静态 Web
资源(例如图像文件)。这些文件的默认位置是 install-dir\csp\sys
如果这些文件由 Web
服务器直接提供服务,请将它们复制到 C:\nginx\html\csp\sys
为 CSP
构建 Nginx Web
服务器
大多数 Web
网关功能由 NSD (CSPnsd[Sv].exe)
提供。对于 CSP
访问,可以构建并配置 Nginx
,通过一个小的编译模块与 NSD
进行通信:ngx_http_csp_module.c
。为方便起见,所有 Web Gateway
安装都包含此源文件。
构建 Nginx 的先决条件:
-
Microsoft Visual Studio
(版本10
或更高版本):http://www.microsoft.com -
MSYS2
(来自MinGW
):https://www.msys2.org/ - P
erl
(最好是ActivePerl
):https://www.activestate.com/products/perl/ -
Mercurial
源代码控制客户端:https://www.mercurial-scm.org/
这里给出的构建说明基于Windows
下构建Nginx
的官方文档:
http://nginx.org/en/docs/howto_build_on_win32.html
Nginx
文档规定还需要以下第三方附加组件:
PCRE
: http://www.pcre.org/OpenSSL (for SSL/TLS)
https://www.openssl.org/Zlib
: http://zlib.net/
但是,如果最终安装不需要这些组件提供的功能,则可以在没有这些组件的情况下创建功能齐全的服务器。
构建Nginx
的默认配置脚本,包括上面列出的所有可选模块,如下:
auto/configure \
--with-cc=cl \
--with-debug \
--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.44 \
--with-zlib=objs/lib/zlib-1.2.12 \
--with-openssl=objs/lib/openssl-1.1.1k \
--with-openssl-opt=no-asm \
--with-http_ssl_module
可以修改构建过程以排除可选模块:
-
OpenSSL
- 删除SSL/TLS
功能:删除指令:--with-http_ssl_module
. -
Zlib
- 删除GZIP
功能:添加指令:--without-http_gzip_module
-
PCRE
- 删除HTTP
重写功能:添加指令:--without-http_rewrite_module