第二十一章 构建和配置 Nginx (UNIX® Linux macOS) - 为CSP构建Nginx的过程
为CSP
构建Nginx
的过程
- 在选择的位置下解压缩源代码发行版。例如:
/opt/
解包后,如果指定/opt/
,则源代码分布在:
/opt/nginx-n.n.n/
- 为
CSP
扩展创建一个目录:
/opt/nginx-n.n.n/csp/
- 将模块源代码(
ngx_http_csp_module.c
)复制到上面创建的目录中。 - 在同一个目录中,创建一个名为
config
的配置文件。这个文件应该包含以下几行:
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"
CORE_LIBS="$CORE_LIBS -ldl"
- 工作在
/opt/nginx-n.n
下。n/
,配置Nginx
构建环境:
./configure --prefix=/opt/nginx
--with-http_ssl_module
--add-module=/opt/nginx-n.n.n/csp
或者,没有OpenSSL
, ZLIB
和PCRE
提供的可选功能:
./configure --prefix=/opt/nginx
--without-http_rewrite_module
--without-http_gzip_module
--add-module=/opt/nginx-n.n.n/csp
注意最后一行包含包含CSP
模块的指令。
- 编译
Nginx
:
make
- 安装
Nginx
:
make install
如果成功,应该在以下位置找到完整的服务器安装:
/opt/nginx/
将 NSD 与 Nginx 结合使用
必须配置 Web
服务器,以便它识别对文件类型的请求(以及应用程序必须服务的任何其他请求),然后将这些请求传递到 NSD
。
为此,请编辑位于 /opt/nginx/conf
中的 Web
服务器配置文件 (nginx.conf
)
本节介绍 CSP
扩展模块提供的用于配置 Web
服务器的服务器配置指令。在位置块的上下文中发出任何这些指令都会将该指令应用于指定路径上的流量。
CSPNSD_pass hostname:portNum
;
(必需。)指定 NSD
正在侦听的地址(主机名和端口)。
如果没有为特定路径指定 NSD
地址,则 NSD
默认侦听地址 127.0.0.1:7038
。
CSP on; and CSP off;
启用或禁用所有请求通过 Web
网关路由到 CSP
服务器。
如果不发出适用于特定路径的 CSP
指令,则发送到该路径的任何请求都不会通过 CSP
进行路由,并且 Web
服务器不会通过 Web
网关路由发送到该路径的任何请求。
CSPFileTypes filetype1[ filetype2...];
允许通过 Web
网关将特定文件类型(文件类型 1
、文件类型 2
等)的请求路由到 CSP
服务器。
例如,如果希望 Web Gateway
在(且仅当)请求 .csp
或 .cls
文件时将发送到 /demo/app
路径的请求路由,请发出以下指令块:
location /demo/app {
CSPFileTypes csp cls;
}
发出指令 CSPFileTypes *
可以路由所有文件类型的请求。其效果与CSP on
相同。
CSPNSD_response_headers_maxsize size;
指定 HTTP
响应标头的最大大小。如果响应标头超过此大小,Web
客户端会收到错误。
默认情况下,CSP
扩展模块应用指令 CSPNSD_response_headers_maxsize 8k
。
CSPNSD_connect_timeout time;
指定从 Web
客户端收到请求时连接到 NSD
的超时时间。
默认情况下,CSP
扩展模块应用指令 CSPNSD_connect_timeout 300
秒。
CSPNSD_send_timeout time
指定单个发送操作请求(例如 POST
或 PUT)的超时时间。超时仅适用于连续的发送操作之间;一旦开始,它不适用于单个传输的完成。
默认情况下,CSP
扩展模块应用指令 CSP_send_timeout 300
秒。
CSPNSD_read_timeout time
;
指定传送响应时单个读取操作(例如 GET
)的超时时间。超时仅适用于连续的读取操作之间;一旦传输开始,它就不适用于传输的完成。
默认情况下,CSP
扩展模块应用指令 CSP_read_timeout 300
秒。