说明
- NP: NGINX Plus
- AG: Admin Guide
目录
7.从官方NGINX仓库安装预构建CentOS/RHEL软件包
16.从官方NGINX存储库安装预构建的Alpine Linux软件包
本文介绍了如何安装NGINX Open Source。
1.在稳定版还是主线版之间进行选择
NGINX开源有两个版本:
- 主线(Mainline) – 包括最新功能和错误修复,并且始终是最新的。 它是可靠的,但是它可能包含一些实验性模块,并且可能还包含一些新的错误。
- 稳定版(Stable) – 不包含所有最新功能,但具有一些重要的错误修复程序,这些错误修复程序始终会反向移植到主线版本。 我们建议将稳定版用于生产服务器。
2.在预编译的程序包和从源代码进行编译之间进行选择
NGINX开源主线和稳定版均可通过两种方式安装:
- 作为预构建的二进制包。 这是安装NGINX Open Source的快速简便的方法。 该软件包包括几乎所有正式的NGINX模块,并且可用于大多数流行的操作系统。 请参阅安装预构建软件包。
- 作为二进制文件,你可以从源代码编译。 这种方式更加灵活:你可以添加特定的模块,包括第三方模块,或应用最新的安全补丁。 有关详细信息,请参见从源代码进行编译和安装。
3.安装预编译包
从软件包安装NGINX开源软件比从源代码构建要容易和快捷得多,但是从源代码构建使你可以在非标准模块中进行编译。 预构建的软件包可用于大多数流行的Linux发行版,包括CentOS,Debian,Red Hat Enterprise Linux(RHEL),SUSE Linux Enterprise Server(SLES)和Ubuntu。 有关当前支持的操作系统的列表,请参见nginx.org上的Linux软件包。
4.模块包含在预编译包中
有关每个预构建软件包中包含的模块列表,请参见nginx.org上的Configure Arguments。
5.安装预建的CentOS和RHEL软件包
NGINX提供用于以下CentOS,Oracle Linux和RHEL版本的软件包:
版本 | 支持平台 |
---|---|
6.x | x86_64, i386 |
7.4+ | x86_64, ppc64le |
8.x | x86_64 |
该软件包可以从以下位置安装:
- 默认的RHEL或CentOS仓库。 这是最快的方法,但是通常提供的软件包已过时。
- 官方仓库位于nginx.org。 你必须第一次设置yum仓库,但是之后提供的软件包始终是最新的。
6.从OS系统仓库安装预构建的CentOS/RHEL软件包
1.安装EPEL仓库:
$ sudo yum install epel-release
2.更新EPEL仓库:
$ sudo yum update
3.安装NGINX Open Source:
$ sudo yum install nginx
4.验证是否安装成功:
$ sudo nginx -v
nginx version: nginx/1.6.3
7.从官方NGINX仓库安装预构建CentOS/RHEL软件包
1.通过在/etc/yum.repos.d中创建文件nginx.repo,例如使用vi,为RHEL或CentOS设置yum仓库:
$ sudo vi /etc/yum.repos.d/nginx.repo
2.将以下行添加到nginx.repo:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/<OS>/<OSRELEASE>/$basearch/
gpgcheck=0
enabled=1
- 路径名中的
/mainline
元素指向NGINX Open Source的最新主线版本; 删除以获得最新的稳定版本 <OS>
是rhel
或centos
<OSRELEASE>是发行版号(6
,6._x_
,7
,7._x_等)
- 例如,要获取用于CentOS 7的最新主线软件包,请插入:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
3.保存更改并退出vi(按ESC并在:
提示符下输入wq
)。
4.更新仓库:
$ sudo yum update
5.安装NGINX开源软件包:
$ sudo yum install nginx
6.启动NGINX Open Source:
$ sudo nginx
7.验证NGINX Open Source是否已启动并正在运行:
$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.13.8
8.安装预构建的Debian软件包
NGINX为以下Debian操作系统提供软件包:
版本 | 代码名称 | 支持平台 |
---|---|---|
9.x | stretch | x86_64, i386 |
10.x | buster | x86_64, i386 |
该软件包可以从以下位置安装:
- 默认的Debian仓库。 这是最快的方法,但是通常提供的软件包已过时。
- 官方仓库位于nginx.org。 你必须第一次设置
apt-get
仓库,但是之后,提供的软件包始终是最新的。
9.从OS系统信息库安装预构建的Debian软件包
1.更新Debian仓库信息:
$ sudo apt-get update
2.安装NGINX开源软件包:
$ sudo apt-get install nginx
3.验证是否安装成功:
$ sudo nginx -v
nginx version: nginx/1.6.2
10.从官方NGINX仓库安装预构建的Debian软件包
1.下载用于签名NGINX软件包和仓库的密钥,并将其添加到apt程序的密钥环中:
$ sudo wget https://nginx.org/keys/nginx_signing.key
$ sudo apt-key add nginx_signing.key
2.编辑/etc/apt/sources.list文件,例如使用vi:
$ sudo vi /etc/apt/sources.list
3.将这些行添加到sources.list,以命名可从其获取NGINX Open Source的存储库:
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
- 路径名中的
/mainline
元素指向NGINX Open Source的最新主线版本; 删除以获得最新的稳定版本 <CODENAME>
是Debian版本的代号- 例如,要获取 Debian 8.2 (“jessie”)的最新主线软件包,请插入:
deb https://nginx.org/packages/mainline/debian/ jessie nginx
deb-src https://nginx.org/packages/mainline/debian/ jessie nginx
4.保存更改并退出vi(按ESC并在:
提示符下键入wq)。
5.安装NGINX软件包:
$ sudo apt-get remove nginx-common
$ sudo apt-get update
$ sudo apt-get install nginx
6.启动NGINXOpen Source
$ sudo nginx
7.验证NGINX Open Source是否已启动并正在运行:
$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.13.8
11.安装预构建的Ubuntu软件包
NGINX为以下Ubuntu操作系统提供软件包:
版本 | 代码名称 | 支持平台 |
---|---|---|
16.04 | xenial | x86_64, i386, ppc64el, aarch64/arm64 |
18.04 | bionic | x86_64, aarch64/arm64 |
19.10 | eoan | x86_64 |
20.04 | focal | x86_64, aarch64/arm64 |
该软件包可以从以下位置安装:
- 默认的Ubuntu仓库。 这是最快的方法,但是通常提供的软件包已过时。
- 官方仓库位于nginx.org。 你必须第一次设置apt-get仓库,但是之后,提供的软件包始终是最新的。
12.从Ubuntu仓库安装预构建的Ubuntu软件包
1.更新Ubuntu存储库信息:
$ sudo apt-get update
2.安装软件包:
$ sudo apt-get install nginx
3.验证安装:
$ sudo nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
13.从官方NGINX仓库安装预构建的Ubuntu软件包
1.下载用于签名NGINX软件包和仓库的密钥,并将其添加到apt程序的密钥环中:
$ sudo wget https://nginx.org/keys/nginx_signing.key
$ sudo apt-key add nginx_signing.key
2.编辑/etc/apt/sources.list文件,例如使用vi:
$ sudo vi /etc/apt/sources.list
3.添加以下代码行sources.list以命名可从其获取NGINX Open Source源代码的仓库:
deb https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx
- 路径名中的
/mainline
元素指向NGINX Open Source的最新主线版本;删除最新的稳定版本 <CODENAME>
是Ubuntu版本的代号
例如,要获取Ubuntu 14.04 (“trusty”)的最新主线软件包,请添加:
deb https://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src https://nginx.org/packages/mainline/ubuntu/ trusty nginx
4.保存更改并退出vi(按ESC并在 : 提示符下键入wq)。
5.安装NGINX Open Source:
$ sudo apt-get install nginx
6.启动NGINX Open Source:
$ sudo nginx
7.验证NGINX Open Source是否已启动并正在运行:
$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.13.8
14.安装SUSE软件包
NGINX提供了用于SUSE Linux Enterprise Server的软件包:
版本 | 支持平台 |
---|---|
SLES 12 | x86_64 |
SLES 15 | x86_64 |
要下载并安装SLES 12的最新稳定版本,请运行:
$ zypper addrepo -G -t yum -c 'https://nginx.org/packages/sles/12' nginx
$ zypper install nginx
要下载并安装SLES 12的最新主线版本,请运行:
$ zypper addrepo -G -t yum -c 'https://nginx.org/packages/mainline/sles/12' nginx
$ zypper install nginx
15.安装预构建的Alpine Linux软件包
NGINX为以下Alpine Linux操作系统提供软件包:
版本 | 支持平台 |
---|---|
3.8 | x86_64 |
3.9 | x86_64 |
3.10 | x86_64 |
3.11 | x86_64 |
该软件包可以从nginx.org的官方仓库中安装。 你必须第一次设置apt-get存储库,但是之后,提供的软件包始终是最新的。
16.从官方NGINX存储库安装预构建的Alpine Linux软件包
1.安装先决条件:
$ sudo apk add openssl curl ca-certificates
2.要为稳定的nginx软件包设置apk仓库,请运行以下命令:
$ printf "%s%s%s\n" \
"http://nginx.org/packages/alpine/v" \
`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
"/main" \
| sudo tee -a /etc/apk/repositories
对于主线nginx软件包,请改为运行以下命令:
$ printf "%s%s%s\n" \
"http://nginx.org/packages/mainline/alpine/v" \
`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
"/main" \
| sudo tee -a /etc/apk/repositories
3.导入正式的nginx签名密钥,以便apk可以验证软件包的真实性。 获取密钥:
$ curl -o /tmp/nginx_signing.rsa.pub https://nginx.org/keys/nginx_signing.rsa.pub
4.验证下载的文件包含正确的密钥:
$ openssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -text -noout
输出应包含以下模数:
Public-Key: (2048 bit)
Modulus:
00:fe:14:f6:0a:1a:b8:86:19:fe:cd:ab:02:9f:58:
2f:37:70:15:74:d6:06:9b:81:55:90:99:96:cc:70:
5c:de:5b:e8:4c:b2:0c:47:5b:a8:a2:98:3d:11:b1:
f6:7d:a0:46:df:24:23:c6:d0:24:52:67:ba:69:ab:
9a:4a:6a:66:2c:db:e1:09:f1:0d:b2:b0:e1:47:1f:
0a:46:ac:0d:82:f3:3c:8d:02:ce:08:43:19:d9:64:
86:c4:4e:07:12:c0:5b:43:ba:7d:17:8a:a3:f0:3d:
98:32:b9:75:66:f4:f0:1b:2d:94:5b:7c:1c:e6:f3:
04:7f:dd:25:b2:82:a6:41:04:b7:50:93:94:c4:7c:
34:7e:12:7c:bf:33:54:55:47:8c:42:94:40:8e:34:
5f:54:04:1d:9e:8c:57:48:d4:b0:f8:e4:03:db:3f:
68:6c:37:fa:62:14:1c:94:d6:de:f2:2b:68:29:17:
24:6d:f7:b5:b3:18:79:fd:31:5e:7f:4c:be:c0:99:
13:cc:e2:97:2b:dc:96:9c:9a:d0:a7:c5:77:82:67:
c9:cb:a9:e7:68:4a:e1:c5:ba:1c:32:0e:79:40:6e:
ef:08:d7:a3:b9:5d:1a:df:ce:1a:c7:44:91:4c:d4:
99:c8:88:69:b3:66:2e:b3:06:f1:f4:22:d7:f2:5f:
ab:6d
Exponent: 65537 (0x10001)
5.将密钥移至APK可信密钥存储区:
$ sudo mv /tmp/nginx_signing.rsa.pub /etc/apk/keys/
6.要安装nginx,请运行以下命令:
sudo apk add nginx
17.从源代码编译和安装
从源代码编译NGINX开源程序比预编译的软件包具有更大的灵活性:你可以添加特定模块(来自NGINX或第三方),并应用最新的安全补丁。
17.1.安装NGINX依赖
从源代码编译NGINX开源之前,你需要安装依赖项的库:
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.44.tar.gz
$ tar -zxf pcre-8.44.tar.gz
$ cd pcre-8.44
$ ./configure
$ make
$ sudo make install
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure
$ make
$ sudo make install
$ wget http://www.openssl.org/source/openssl-1.1.1g.tar.gz
$ tar -zxf openssl-1.1.1g.tar.gz
$ cd openssl-1.1.1g
$ ./Configure darwin64-x86_64-cc --prefix=/usr
$ make
$ sudo make install
17.2.下载源码
从nginx.org下载稳定版和主线版的源文件。
要下载并解压缩最新主线版本的源,请运行:
$ wget https://nginx.org/download/nginx-1.19.0.tar.gz
$ tar zxf nginx-1.19.0.tar.gz
$ cd nginx-1.19.0
要下载和解压缩最新稳定版本的源文件,请运行:
$ wget https://nginx.org/download/nginx-1.18.0.tar.gz
$ tar zxf nginx-1.18.0.tar.gz
$ cd nginx-1.18.0
17.3.配置构建选项
配置选项由./configure
脚本指定,该脚本设置了各种NGINX参数,包括源文件和配置文件的路径,编译器选项,连接处理方法以及模块列表。 该脚本通过创建编译代码并安装NGINX Open Source所需的Makefile
结束。
configure
脚本选项的示例(应键入为一行):
$ ./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11
--with-http_ssl_module
--with-stream
--with-mail=dynamic
--add-module=/usr/build/nginx-rtmp-module
--add-dynamic-module=/usr/build/3party_module
17.4.配置NGINX路径
configure脚本允许你设置NGINX二进制文件和配置文件以及相关库(例如PCRE或SSL)的路径,以便将它们静态链接到NGINX二进制文件。
参数 | 描述 |
---|---|
--prefix=<PATH> | NGINX文件的目录,以及其他配置脚本选项设置的所有相对路径的基本位置(不包括库的路径)以及nginx.conf配置文件的路径。 默认值:/usr/local/nginx |
--sbin-path=<PATH> | NGINX可执行文件的名称,仅在安装期间使用。 默认值: <prefix>/sbin/nginx |
--conf-path=<PATH> | NGINX配置文件的名称。 但是,你始终可以在启动时通过在nginx命令行上使用 默认值:<prefix>conf/nginx.conf |
--pid-path=<PATH> | nginx.pid文件的名称,用于存储nginx主进程的进程ID。 安装后,可以使用NGINX配置文件中的pid伪指令更改文件名的路径。 默认值:<prefix>/logs/nginx.pid |
--error-log-path=<PATH> | 错误,警告和诊断数据的主要日志文件的名称。 安装后,可以使用NGINX配置文件中的error_log指令更改文件名。 默认值:<prefix>/logs/error.log |
--http-log-path=<PATH> | 向HTTP服务器发出请求的主要日志文件的名称。 安装后,可以始终使用NGINX配置文件中的access_log指令更改文件名。 默认值:<prefix>/logs/access.log |
--user=<NAME> | NGINX工作进程使用其凭据的非特权用户的名称。 安装后,可以使用NGINX配置文件中的用户指令更改名称。 默认值: |
--group=<NAME> | NGINX工作进程使用其凭据的组的名称。 安装后,可以使用NGINX配置文件中的用户指令更改名称。 默认值: |
--with-pcre=<PATH> | |
--with-pcre-jit | 使用“及时编译”支持(pcre_jit指令)构建PCRE库。 |
--with-zlib=<PATH> | zlib库的源路径,Gzip模块需要此路径。 |
17.5.配置NGINX GCC选项
使用configure脚本,你还可以指定与编译器相关的选项。
参数 | 描述 |
---|---|
--with-cc-opt="<PARAMETERS>" | 添加到 |
--with-ld-opt="<PARAMETERS>" | 链接期间使用的其他参数。 在FreeBSD下使用系统PCRE库时,必填值为 |
17.6.指定NGINX连接处理方法
使用configure脚本,你可以重新定义基于事件的轮询的方法。 有关更多信息,请参见NGINX参考文档中的连接处理方法。
模块名称 | 描述 |
---|---|
--with-select_module , --without-select_module | 启用或禁用构建可使NGINX与 |
--with-poll_module , --without-poll_module | 启用或禁用构建使NGINX能够与 |
17.7.选择要构建的NGINX模块
NGINX由一组特定于功能的模块组成,这些模块由configure脚本以及其他构建选项指定。
某些模块是默认构建的(他们不必使用configure
脚本指定)。 但是,可以使用configure
脚本中的--without-<MODULE-NAME>
选项将默认模块从NGINX二进制文件中明确排除。
必须在配置脚本中与其他构建选项一起明确指定默认情况下未包括的模块以及第三方模块。 可以将这些模块静态链接到NGINX二进制文件(然后每次NGINX启动时将它们加载)或动态链接(仅当NGINX配置文件中包含相关指令时才加载它们)。
17.8.默认构建的模块
如果你不需要默认构建的模块,则可以通过在configure
脚本上使用--without-<MODULE-NAME>
选项对其进行命名来禁用它,如本例中所示,它禁用Empty GIF模块(应为 输入为单行):
$ ./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-stream
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11
--without-http_empty_gif_module
模块名称 | 描述 |
---|---|
http_access_module | 接受或拒绝来自指定客户地址的请求。 |
http_auth_basic_module | 通过使用HTTP基本身份验证协议验证用户名和密码来限制对资源的访问。 |
http_autoindex_module | 处理以正斜杠字符(/)结尾的请求,并生成目录列表。 |
http_browser_module | 创建变量,其值取决于User-Agent 请求标头的值。 |
http_charset_module | 将指定的字符集添加到Content-Type 响应标头中。 可以将数据从一个字符集转换为另一个字符集。 |
http_empty_gif_module | 发出单像素透明GIF。 |
http_fastcgi_module | 将请求传递到FastCGI服务器。 |
http_geo_module | 创建变量,其值取决于客户端IP地址。 |
http_gzip_module | 使用gzip压缩响应,将传输的数据量减少一半或更多。 |
http_limit_conn_module | 限制每个已定义键的连接数,特别是单个IP地址的连接数。 |
http_limit_req_module | 限制每个已定义密钥的请求处理速率,特别是来自单个IP地址的请求的处理速率。 |
http_map_module | 创建其值取决于其他变量的值的变量。 |
http_memcached_module | 将请求传递到内存缓存服务器。 |
http_proxy_module | 将HTTP请求传递到另一台服务器。 |
http_referer_module | 阻塞引用页眉中具有无效值的请求。 |
http_rewrite_module | 使用正则表达式更改请求URI并返回重定向; 有条件地选择配置。 需要PCRE库。 |
http_scgi_module | 将请求传递到SCGI服务器。 |
http_ssi_module | 在通过SSI(服务器端包含)的响应中处理命令。 |
http_split_clients_module | 创建适用于A / B测试(也称为拆分测试)的变量。 |
http_upstream_hash_module | 启用通用哈希负载平衡方法。 |
http_upstream_ip_hash_module | 启用IP哈希负载平衡方法。 |
http_upstream_keepalive_module | 启用心跳(keepalive)连接。 |
http_upstream_least_conn_module | 启用“最少连接”负载平衡方法。 |
http_upstream_zone_module | 启用共享内存区域。 |
http_userid_module | 设置适合客户识别的cookie。 |
http_uwsgi_module | 将请求传递到uwsgi服务器。 |
17.9.包括默认情况下未构建的模块
许多NGINX模块不是默认构建的,必须在要构建的configure命令行中列出。
可以将mail, stream, geoip, image_filter, perl, xslt模块编译为动态模块。 有关详细信息,请参见动态模块。
$ ./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11
--with-http_ssl_module
--with-stream
--with-mail
模块名称 | 描述 |
---|---|
--with-cpp_test_module | 测试头文件的C ++兼容性。 |
--with-debug | 启用debugging log. |
--with-file-aio | 启用异步I / O |
``–``with-google_perftools_module | 允许使用Google Performance工具库。 |
-- with-http_addition_module | 在响应之前和之后添加文本。 |
-- with-http_auth_request_module | 根据子请求的结果实现客户端授权。 |
-- with-http_dav_module | 使用WebDAV协议启用文件管理自动化。 |
--with-http_degradation_module | 当内存大小超过定义的值时,允许返回错误。 |
-- with-http_flv_module | 为Flash Video(FLV)文件提供伪流服务器端支持。 |
-- with-http_geoip_module | 启用创建其值取决于客户端IP地址的变量。 该模块使用MaxMind GeoIP数据库。 要将其编译为单独的动态模块,请将选项更改为 –with-http_geoip_module=dynamic。 |
-- with-http_gunzip_module | 对于不支持_zip_编码方法的客户端,使用Content-Encoding: gzip解压缩响应。 |
-- with-http_gzip_static_module | 允许发送扩展名为.gz的预压缩文件,而不是常规文件。 |
-- with-http_image_filter_module | 以JPEG,GIF和PNG格式转换图像。 该模块需要LibGD库。 要将其编译为单独的动态模块,请将选项更改为 |
-- with-http_mp4_module | 为MP4文件提供伪流服务器端支持。 |
-- with-http_perl_module | 用于在Perl中实现位置和变量处理程序,并将Perl调用插入SSI。 需要PERL库。 要将其编译为单独的动态模块,请将选项更改为 |
-- with-http_random_index_module | 处理以斜杠字符('/')结尾的请求,并从目录中选择一个随机文件作为索引文件。 |
-- with-http_realip_module | 将客户端地址更改为在指定的标头字段中发送的地址。 |
-- with-http_secure_link_module | 用于检查请求的链接的真实性,保护资源免受未经授权的访问,并限制链接的寿命。 |
-- with-http_slice_module | 允许将请求分为多个子请求,每个子请求返回一定范围的响应。 提供更有效的大文件缓存。 |
-- with-http_ssl_module | 启用HTTPS支持。 需要SSL库,例如OpenSSL. |
-- with-http_stub_status_module | 提供对基本状态信息的访问。 请注意,NGINX Plus客户不需要此模块,因为它们已经提供了扩展状态指标和交互式仪表板。 |
-- with-http_sub_module | 通过将一个指定的字符串替换为另一个指定的字符串来修改响应。 |
-- with-http_xslt_module | 使用一个或多个XSLT样式表转换XML响应。 该模块需要Libxml2和XSLT库。 要将其编译为单独的动态模块,请将选项更改为 |
-- with-http_v2_module | 启用对HTTP/2的支持。 有关详细信息,请参见NGINX博客上NGINX中的HTTP/2模块。 |
-- with-mail | 启用邮件代理功能。 要将其编译为单独的动态模块,请将选项更改为--with-mail=dynamic 。 |
-- with-mail_ssl_module | 提供对邮件代理服务器使用SSL/TLS协议的支持。 需要SSL库,例如OpenSSL。 |
-- with-stream | 启用TCP和UDP代理功能。 要将其编译为单独的动态模块,请将选项更改为--with-stream=dynamic 。 |
-- with-stream_ssl_module | 提供对流代理服务器使用SSL/TLS协议的支持。 需要SSL库,例如OpenSSL。 |
--with-threads | 使NGINX可以使用线程池。 有关详细信息,请参见Thread Pools in NGINX Boost Performance 9x!在NGINX博客上。 |
17.10.包括第三方模块
你可以通过使用自己的模块或第三方模块编译NGINX开放源代码来扩展NGINX功能。NGINX Wiki中列出了一些第三方模块。 使用第三方模块的风险自负,因为不能保证其稳定性。
17.10.1.静态链接模块
内置于NGINX Open Source中的大多数模块都是静态链接(statically linked):它们在编译时内置于NGINX Open Source中,并静态链接至NGINX二进制文件。 这些模块只能通过重新编译NGINX来禁用。
要使用静态链接的第三方模块编译NGINX Open Source,请在configure命令中包括--add-module=<PATH>
选项,其中<PATH>
是源代码的路径(此示例用于RTMP模块) ):
$ ./configure ... --add-module=/usr/build/nginx-rtmp-module
17.10.2.动态链接模块
NGINX模块也可以编译为共享对象(*.so文件),然后在运行时动态加载到NGINX Open Source中。 这提供了更大的灵活性,因为可以随时通过在NGINX配置文件中添加或删除关联的load_module
指令并重新加载配置来随时加载或卸载模块。 请注意,模块本身必须支持动态链接。
要使用动态加载的第三方模块编译NGINX开源,请在configure命令中包括--add-dynamic-module=<PATH>
选项,其中 <PATH>
是源代码的路径:
$ ./configure ... --add-dynamic-module=<PATH>
生成的*.so文件将被写入prefix/modules/ 目录,其中prefix是服务器文件(例如/usr/local/nginx/)的目录。
要加载动态模块,请在安装后将load_module
指令添加到NGINX配置中:
load_module modules/ngx_mail_module.so;
有关更多信息,请参见NGINX博客上的为NGINX和NGINX Plus编译第三方动态模块和在Wiki中扩展NGINX。
17.11.从源代码完成安装
- 编译并安装构建:
$ make
$ sudo make install
- 安装完成后,启动NGINX Open Source:
$ sudo nginx