Nginx中文文档
DocsHome
  • 贡献导引
  • 介绍
    • 安装 nginx
    • 从源码构建 nginx
    • 初学者指南
    • 管理指南
    • 控制 nginx
    • 连接处理方式
    • 设置哈希
    • 调试日志
    • 记录日志到 syslog
    • 配置文件度量单位
    • 命令行参数
    • Windows 下的 nginx
    • QUIC 和 HTTP/3 支持
    • nginx 如何处理请求
    • 服务器名称
    • 使用 nginx 作为 HTTP 负载均衡器
    • 配置 HTTPS 服务器
    • nginx 如何处理 TCP/UDP 会话
    • 关于 nginScript
  • 其他
    • Linux 软件包
  • How-To
    • 在 Win32 平台上使用 Visual C 构建 nginx
    • 设置 Amazon EC2 的 Nginx Plus 环境
    • 使用 DTrace pid 提供程序调试 nginx
    • 转换重写规则
    • WebSocket 代理
  • 开发
    • 贡献指南
    • 开发指南
  • 模块参考
  • 核心功能
    • HTTP
      • ngx_http_core_module
      • ngx_http_access_module
      • ngx_http_addition_module
      • ngx_http_api_module
      • ngx_http_auth_basic_module
      • ngx_http_auth_jwt_module
      • ngx_http_auth_request_module
      • ngx_http_autoindex_module
      • ngx_http_browser_module
      • ngx_http_charset_module
      • ngx_http_dav_module
      • ngx_http_empty_gif_module
      • ngx_http_f4f_module
      • ngx_http_fastcgi_module
      • ngx_http_flv_module
      • ngx_http_geo_module
      • ngx_http_geoip_module
      • ngx_http_grpc_module
      • ngx_http_gunzip_module
      • ngx_http_gzip_module
      • ngx_http_gzip_static_module
      • ngx_http_headers_module
      • ngx_http_hls_module
      • ngx_http_image_filter_module
      • ngx_http_index_module
      • ngx_http_js_module
      • ngx_http_keyval_module
      • ngx_http_limit_conn_module
      • ngx_http_limit_req_module
      • ngx_http_log_module
      • ngx_http_map_module
      • ngx_http_memcached_module
      • ngx_http_mirror_module
      • ngx_http_mp4_module
      • ngx_http_perl_module
      • ngx_http_proxy_module
      • ngx_http_random_index_module
      • ngx_http_realip_module
      • ngx_http_referer_module
      • ngx_http_rewrite_module
      • ngx_http_scgi_module
      • ngx_http_secure_link_module
      • ngx_http_session_log_module
      • ngx_http_slice_module
      • ngx_http_spdy_module(过时)
      • ngx_http_split_clients_module
      • ngx_http_ssi_module
      • ngx_http_ssl_module
      • ngx_http_status_module(过时)
      • ngx_http_stub_status_module
      • ngx_http_sub_module
      • ngx_http_upstream_module
      • ngx_http_upstream_conf_module
      • ngx_http_upstream_hc_module
      • ngx_http_userid_module
      • ngx_http_uwsgi_module
      • ngx_http_v2_module
      • ngx_http_xslt_module
    • Mail
      • ngx_mail_core_module
      • ngx_mail_auth_http_module
      • ngx_mail_proxy_module
      • ngx_mail_ssl_module
      • ngx_mail_imap_module
      • ngx_mail_pop3_module
      • ngx_mail_smtp_module
    • Stream
      • ngx_stream_core_module
      • ngx_stream_access_module
      • ngx_stream_geo_module
      • ngx_stream_geoip_module
      • ngx_stream_js_module
      • ngx_stream_keyval_module
      • ngx_stream_limit_conn_module
      • ngx_stream_log_module
      • ngx_stream_map_module
      • ngx_stream_proxy_module
      • ngx_stream_realip_module
      • ngx_stream_return_module
      • ngx_stream_split_clients_module
      • ngx_stream_ssl_module
      • ngx_stream_ssl_preread_module
      • ngx_stream_upstream_module
      • ngx_stream_upstream_hc_module
      • ngx_stream_zone_sync_module
    • 其他
      • ngx_google_perftools_module
由 GitBook 提供支持
在本页
  1. 介绍

从源码构建 nginx

上一页安装 nginx下一页初学者指南

最后更新于1年前

编译时使用 configure 命令进行配置。它定义了系统的各个方面,包括了 nginx 进行连接处理使用的方法。最终它会创建出一个 Makefile。

configure 命令支持以下参数:

  • --help

    打印帮助信息

  • --prefix=path

    定义一个用于保留服务器文件的目录。此目录也将用于所有通过 configure 设置的相对路径(除了库源码路径外)和 nginx.conf 配置文件。默认设置为 /usr/local/nginx 目录。

  • --sbin-path=path

    设置 nginx 可执行文件的名称。此名称仅在安装过程中使用。默认情况下,文件名为 prefix/sbin/nginx。

  • --modules-path=path

    定义将安装 nginx 动态模块的目录。默认情况下,使用 prefix/modules 目录。

  • --conf-path=path

    设置 nginx.conf 配置文件的名称。如果需要,nginx 可以使用不同的配置文件启动,方法是使用命令行参数 -c 指定文件。默认情况下,文件名为 prefix/conf/nginx.conf。

  • --error-log-path=path

    设置主要错误、警告和诊断文件的名称。安装后,可以在 nginx.conf 配置文件中使用 指令更改文件名。默认情况下,文件名为 prefix/logs/error.log。

  • --pid-path=path

    设置存储主进程的进程 ID 的 nginx.pid 文件名称。安装后,可以在 nginx.conf 配置文件中使用 指令更改文件名。默认文件名为 prefix/logs/nginx.pid。

  • --lock-path=path

    设置锁文件的名称前缀。安装后,可以在 nginx.conf 配置文件中使用 指令更改对应的值。默认值为 prefix/logs/nginx.lock。

  • --user=name

    设置一个非特权用户名称,其凭据将由工作进程使用。安装后,可以在 nginx.conf 配置文件中使用 指令更改名称。默认的用户名为 nobody。

  • --group=name

    设置一个组的名称,其凭据将由工作进程使用。安装后,可以在 nginx.conf 配置文件中使用 指令更改名称。默认情况下,组名称设置为一个非特权用户的名称。

  • --build=name

    设置一个可选的 nginx 构建名称

  • --builddir=path

    设置构建文件夹

  • --http-log-path=path

    设置 HTTP 服务器主请求日志文件名称。安装后,可以在 nginx.conf 配置文件中使用 指令更改文件名。默认情况下,文件名为 prefix/logs/access.log。

  • --with-select_module 和 --without-select_module

    启用或禁用构建允许服务器使用 select() 方法的模块。如果平台不支持其他更合适的方法(如 kqueue、epoll 或 /dev/poll),则将自动构建该模块。

  • --with-poll_module 和 --without-poll_module

    启用或禁用构建允许服务器使用 poll() 方法的模块。如果平台不支持其他更合适的方法(如 kqueue、epoll 或 /dev/poll),则将自动构建该模块。

  • with-threads

    允许使用线程池

  • with-file-aio

    启用在FreeBSD和Linux上 (aio)指令的使用

  • --without-http_gzip_module

    禁用构建 HTTP 服务器模块。需要 zlib 库来构建和运行此模块。

  • --without-http_rewrite_module

    禁用构建允许 HTTP 服务器和 的模块。需要 PCRE 库来构建和运行此模块。

  • --without-http_proxy_module

    禁用构建 HTTP 服务器。

  • --with-http_ssl_module

    允许构建可将 添加到 HTTP 服务器的模块。默认情况下,此模块参与构建。构建和运行此模块需要 OpenSSL 库支持。

  • with-http_v2_module

    允许构建一个支持 的模块。默认情况下,该模块不构建。

  • with-http_realip_module

    允许构建 模块,该模块将客户端地址更改为在指定的header中发送的地址。该模块默认不构建。

  • with-http_addition_module

    允许构建 模块,该模块能够在响应之前和之后添加文本。该模块默认不构建。

  • with-http_xslt_module和with-http_xslt_module=dynamic

    允许构建使用一个或者多个XSLT样式表转化为XML响应的。该模块默认不构建。 和 库需要这个模块来构建和启动。

  • with-http_image_filter_module和with-http_image_filter_module=dynamic

    允许构建 模块,该模块可以转换 JPEG, GIF, PNG, 和 WebP 格式的图片。该模块默认不构建。

  • with-http_geoip_module和with-http_geoip_module=dynamic

    允许构建 模块。该模块根据客户端 IP 地址和预编译 的数据库创建变量。该模块默认不构建。

  • with-http_sub_module

    允许构建 模块。该模块通过将一个指定的字符串替换为另一个来修改相应。该模块默认不构建。

  • with-http_dav_module

    允许构建模块。该模块通过WebDEV协议提供文件管理自动化。该模块默认不构建。

  • with-http_flv_module

    允许构建 模块。该模块为 Flash Videos (FLV) 文件提供伪流服务器端的支持。该模块默认不构建。

  • with-http_mp4_module

    允许构建 模块。该模块为 MP4 文件提供伪流服务器端的支持。该模块默认不构建。

  • with-http_gunzip_module

    允许构建 模块。该模块使用 Content-Encoding: gzip 来解压缩响应对于那些不支持gzip编码方法的客户端。该模块默认不构建。

  • with-http_auth_request_module

    允许构建 模块。该模块基于子请求的结果实现客户端授权。该模块默认不构建。

  • with-http_random_index_module

    允许构建 模块。该模块处理斜杠字符 ('/') 结尾的请求,并选择目录中的随机文件作为索引文件。该模块默认不构建。

  • with-http_secure_link_module

    允许构建 模块。该模块默认不构建。

  • with-http_degradation_module

    允许构建 with-http_degradation_module 模块。该模块默认不构建。

  • with-http_slice_module

    允许构建 将请求拆分为子请求的模块,每个模块都返回一定范围的响应。该模块提供了更有效的大响应缓存。该模块默认不构建。

  • with-http_stub_status_module

    允许构建 模块。该模块提供对基本状态信息的访问。该模块默认不构建。

  • without-http_charset_module

    禁用构建压缩 HTTP 响应的 模块。该模块将指定的字符集添加到 Content-Type 响应头字段,还可以将数据从一个字符集转化为另一个字符集。

  • without-http_gzip_module

    禁用构建压缩 HTTP 响应的 模块。构建和运行这个模块需要 zlib 库。

  • without-http_ssi_module

    禁用构建 模块。该模块在通过它的响应中处理 SSI (服务端包含) 命令。

  • without-http_userid_module

    允许构建 模块。该模块设置适合客户端识别的cookie。

  • without-http_access_module

    禁用构建 模块。该模块允许限制对某些客户端地址的访问。

  • without-http_auth_basic_module

    禁用构建 模块。该模块允许通过使用HTTP基本身份验证协议验证用户名密码来限制对资源的访问。

  • without-http_mirror_module

    禁用构建 模块。该模块通过创建后台镜像子请求来实现原始请求的镜像。

  • without-http_autoindex_module

    禁用构建 模块。该模块处理以斜杠('/')结尾的请求,并在 模块找不到索引文件的情况下生成目录列表。

  • without-http_geo_module

    禁用构建 模块。该模块使用取决于客户端IP地址的值创建变量。

  • without-http_map_module

    禁用构建 模块。该模块使用取决于其他变量的值创建变量。

  • without-http_split_clients_module

    禁用构建 模块。该模块为 A/B 测试创建变量。

  • without-http_referer_module

    禁用构建 模块。该模块可以阻止对 “Referer” 头字段中具有无效值的请求访问站点。

  • without-http_proxy_module

    禁用构建允许HTTP服务器重定向的请求和更改请求URI 的模块。

  • without-http_proxy_module

    禁用构建 HTTP服务器代理模块。

  • without-http_fastcgi_module

    禁用构建将请求传递给FastCGI服务器的模块。

  • without-http_uwsgi_module

    禁用构建将请求传递给uwsgi服务器的 模块。

  • without-http_scgi_module

    禁用构建将请求传递给SCGI服务器的 模块。

  • without-http_grpc_module

    禁用构建将请求传递给个RPC服务器 模块。

  • without-http_memcached_module

    禁用构建 模块。该模块从 memcached 服务器获得响应。

  • without-http_limit_conn_module

    禁用构建 模块。该模块限制每个密钥的链接数,例如,来自单个IP地址的链接数。

  • without-http_limit_req_module

    禁用构建限制每个键的请求处理速率 模块。例如,来自单个IP地址的请求的处理速率。

  • without-http_empty_gif_module

    禁用构建发出单像素透明GIF 模块。

  • without-http_browser_module

    禁用构建 模块。该模块创建的值的变量取决于 “User-Agent” 请求标头字段的值。

  • without-http_upstream_hash_module

    禁用构建实现散列负载均衡的方法 模块。

  • without-http_upstream_ip_hash_module

    禁用构建实现 负载均衡方法的模块。

  • without-http_upstream_least_conn_module

    禁用构建实现 负载均衡方法的模块。

  • without-http_upstream_keepalive_module

    禁用构建 模块。该模块提供到上游服务器的链接缓存。

  • without-http_upstream_zone_module

    禁用构建 模块。该模块可以将上游组的运行时状态存储在共享内存区域中。

  • with-http_perl_module和with-http_perl_module=dynamic

    构建 模块。该模块默认不构建。

  • --with-perl_modules_path=path

    定义一个保留Perl模块的路径。

  • with-perl=path

    设置Perl二进制文件的名字。

  • http-client-body-temp-path

    定义用于存储保存客户端的请求主体的临时文件的目录。安装后,可以使用 指令在nginx.conf配置文件中始终更改目录。默认的目录名为 prefix/client_body_temp。

  • http-proxy-temp-path=path

    定义一个目录,用于存储临时文件和从代理服务器接受的数据。安装后可以使用 指令在nginx.conf配置文件中更改。默认的目录名为 profix/proxy_temp

  • http-fastcgi-temp-path=path

    定义一个目录,用于存储临时文件和从 FastCGI 服务器接受的数据。安装后可以使用 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/fastcgi_temp

  • http-uwsgi-temp-path=path

    定义一个目录,用于存储临时文件和从 uwsgi 服务器接受的数据。安装后可以使用 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/uwsgi_temp

  • http-scgi-temp-path=path

    定义一个目录,用于存储临时文件和从 SCGI 服务器接受的数据。安装后可以使用 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/scgi_temp

  • without-http

    禁用构建 模块。

  • without-http-cache

    禁用 HTTP 缓存。

  • with-mail和with-mail=dynamic

    启用构建 POP3/IMAP4/SMTP 模块。

  • with-mail_ssl_module

    启用构建 模块,将SSL/TLS协议支持添加到邮件代理服务器。默认不构建此模块。需要OpenSSL库来构建和运行此模块。

  • without-mail_pop3_module

    禁用邮件代理服务器中的 协议。

  • without-mail_imap_module

    禁用邮件代理服务器中的 协议。

  • without-mail_smtp_module

    禁用邮件代理服务器中的 协议。

  • with-stream和with-stream=dynamic

    启用构建 模块以进行通用的 TCP/UDP 代理和负载均衡。该模块默认不构建。

  • with-stream_ssl_module

    启用构建 模块。为流模块添加SSL/TLS协议支持。默认不构建此模块。需要OpenSSL库来构建和运行此模块。

  • with-stream_realip_module

    启用构建 模块。该模块将客户端地址更改为 PROXY 协议头中发送的地址。默认不构建此模块。

  • with-stream_geoip_module和with-stream_geoip_module=dynamic

    启用构建 模块。该模块根据客户端地址和预编译的 数据库创建变量。默认不构建。

  • with-stream_ssl_preread_module

    禁用构建 模块。该模块允许从 消息中提取消息而不终止SSL/TLS。

  • without-stream_limit_conn_module

    禁用构建 模块。该模块限制每个密钥的连接数,例如,来自单个IP地址的连接数。

  • without-stream_geo_module

    禁用构建 模块。该模块使用取决于客户端IP地址的值创建变量。

  • without-stream_map_module

    禁用构建 模块。该模块根据其他变量的值创建值。

  • without-stream_split_clients_module

    禁用构建 模块。该模块为 A/B 测试创建变量

  • without-stream_return_module

    禁用构建 模块。该模块将一些指定值发送到客户端,然后关闭连接。

  • without-stream_upstream_hash_module

    禁用构建 实现散列负载平衡方法的模块。

  • without-stream_upstream_least_conn_module

    禁用构建 实现散列负载平衡方法的模块。

  • without-stream_upstream_zone_module

    禁用构建 的模块。该模块可以将上游组的运行时状态存储在共享内存区域中

  • with-google_perftools_module

    禁用构建模块。该模块可以使用 分析nginx工作进程。该模块适用于nginx开发人员,默认情况下不构建。

  • with-cpp_test_module

    启用构建ngx_cpp_test_module模块。

  • add-module=path

    启用外部模块。

  • add-dynamic-module=path

    启用动态模块。

  • with-compat

    实现动态兼容模块。

  • with-cc=path

    设置C编译器的名称。

  • with-cpp=path

    设置C++处理器的名称。

  • with-cc-opt=parameters

    设置将添加到CFLAGS变量的其他参数。在FreeBSD下使用系统PCRE库时,应指定--with-cc-opt =" - I / usr / local / include"。如果需要增加 select() 支持的文件数,也可以在此处指定,例如: - with-cc-opt =" - D FD_SETSIZE = 2048"。

  • with-ld-opt=parameters

    设置将在链接期间使用的其他参数。在FreeBSD下使用系统PCRE库时,应指定--with-ld-opt =" - L / usr / local / lib"。

  • with-cpu-opt=cpu

    指定编译的 CPU ,pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64。

  • without-pcre

    禁用 PCRE 库的使用。

  • with-pcre

    强制使用 PCRE 库。

  • with-pcre=path

    设置 PCRE 库源的路径。需要从 站点下载分发(版本4.4 - 8.42)并将其解压缩。剩下的工作由nginx的./configure和make完成。该位置指令和 模块中的正则表达式支持需要该库。

  • with-pcre-opt=parameters

    为PCRE设置其他构建选项。

  • with-zlib-opt=parameters

    为zlib设置其他构建选项。

  • with-zlib-asm=cpu

    启用使用针对其中一个指定CPU优化的zlib汇编程序源:pentium,pentiumpro。

  • with-libatomic

    强制libatomic_ops库使用。

  • with-libatomic=path

    设置libatomic_ops库源的路径。

  • with-openssl=path

    设置OpenSSL库源的路径。

  • with-openssl-opt=parameters

    为OpenSSL设置其他构建选项。

  • with-debug

    启用 。

  • --with-pcre=path

    设置 PCRE 库的源路径。发行版(4.4 至 8.40 版本)需要从 站点下载并提取。其余工作由 nginx 的 ./configure 和 make 完成。该库是 指令和 模块中正则表达式支持所必需的。

  • --with-pcre-jit

    使用“即时编译(just-in-time compilation)”支持(1.1.12版本的 指令)构建 PCRE 库。

  • --with-zlib=path

    设置 zlib 库的源路径。发行版(1.1.3 至 1.2.11 版本)需要从 站点下载并提取。其余工作由 nginx 的 ./configure 和 make 完成。该库是 模块所必需的。

  • --with-cc-opt=parameters

    设置添加到 CFLAGS 变量的额外参数。当在 FreeBSD 下使用系统的 PCRE 库时,应指定 --with-cc-opt="-I /usr/local/include"。如果需要增加 select() 所支持的文件数量,也可以在这里指定,如:--with-cc-opt="-D FD_SETSIZE=2048"。

  • --with-ld-opt=parameters

    设置链接期间使用的其他参数。在 FreeBSD 下使用系统 PCRE 库时,应指定--with-ld-opt="-L /usr/local/lib"`。

参数使用示例:

./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-pcre=../pcre-8.40 \
    --with-zlib=../zlib-1.2.11

配置完成之后,使用 make 和 make install 编译和安装 nginx。

原文档

error_log
pid
lock_file
user
user
access_log
thread pools
asynchronous file I/O
响应压缩
重定向请求
更改请求 URI
代理模块
HTTPS 协议支持
HTTP/2
ngx_http_realip_module
ngx_http_addition_module
ngx_http_xslt_module
libxslt
libxml2
ngx_http_image_filter_module
ngx_http_geoip_module
MaxMind
ngx_http_sub_module
ngx_http_dav_module
ngx_http_flv_module
ngx_http_mp4_module
ngx_http_gunzip_module
ngx_http_auth_request_module
ngx_http_random_index_module
ngx_http_secure_link_module
ngx_http_slice_module
ngx_http_stub_status_module
ngx_http_charset_module
compresses responses
without-http_ssi_module
ngx_http_userid_module
ngx_http_access_module
ngx_http_auth_basic_module
ngx_http_mirror_module
ngx_http_autoindex_module
ngx_http_index_module
ngx_http_geo_module
ngx_http_map_module
ngx_http_split_clients_module
ngx_http_referer_module
redirect requests and change URI of requests
proxying module
ngx_http_fastcgi_module
ngx_http_uwsgi_module
ngx_http_scgi_module
ngx_http_grpc_module
ngx_http_memcached_module
ngx_http_limit_conn_module
ngx_http_limit_req_module
emits single-pixel transparent GIF
ngx_http_browser_module
hash
IP_Hash
least_conn
caching of connections
zone
嵌入式Perl
client_body_temp_path
proxy_temp_path
fastcgi_temp_path
uwsgi_temp_path
scgi_temp_path
HTTP
mail proxy
SSL/TLS protocol support
POP3
IMAP
SMTP
流模块
SSL/TLS protocol support
ngx_stream_realip_module
ngx_stream_geoip_module
MaxMind
with-http_degradation_modulengx_stream_ssl_preread_module
ClientHello
ngx_stream_limit_conn_module
ngx_stream_geo_module
ngx_stream_map_module
ngx_stream_split_clients_module
ngx_stream_return_module
hash
least_conn
zone
ngx_google_perftools_module
Google Performance Tools
PCRE
ngx_http_rewrite_module
调试日志
PCRE
location
ngx_http_rewrite_module
pcre_jit
zlib
ngx_http_gzip_module
http://nginx.org/en/docs/configure.html