第十四章 构建和配置 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-dircsp中 -
Web服务器安装在C:
ginx
如果系统上的布局不同,请根据需要修改配置指令。
安装
Web Gateway 组件和 CSP 静态文件应按如下方式安装:
-
Web网关网络服务守护进程 (NSD - Network Service Daemon)
-
CSPnsd.exe(主二进制文件) -
CSPnsdSv.exe(Windows服务)
这些文件的默认位置是 install-dirin
配置和日志文件写入此目录中。
-
HyperEvents组件
-
CSPBroker.js -
CSPxmlhttp.js
这些文件的默认位置是 install-dircsproker
如果这些文件要直接由Web服务器作为静态组件,请将它们复制到C:
ginxhtmlcsproker
- 管理门户使用的各种静态资源
管理门户需要大量静态 Web 资源(例如图像文件)。这些文件的默认位置是 install-dircspsys
如果这些文件由 Web 服务器直接提供服务,请将它们复制到 C:
ginxhtmlcspsys
为 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