1. 通用配置项

  • --prefix=<path>:Nginx 安装的根路径,所有其他的路径都要依赖于该选项。
  • --sbin-path=<path>:指定 Nginx 二进制文件的路径。如果没有指定,那么这个路径会依赖于 --prefix 选项。
  • --conf-path=<path>:如果在命令行没有指定配置文件,那么将会通过这里指定路径,Nginx 将会去那里查找它的配置文件。
  • --error-log-path=<path>:指定错误文件的路径,Nginx 将会往其中写入错误日志文件,除非有其他的配置。
  • --pid-path=<path>:指定的文件将会写入 Nginx master 进程的 pid,通常在 /var/run 下。
  • --lock-path=<path>:共享存储器互斥锁文件的路径。
  • --user=<user>:worker 进程运行的用户。
  • --group=<group>:worker 进程运行的组。
  • --with-file-aio:为 FreeBSD 4.3+ 和 Linux 2.6.22+ 系统启用异步 I/O。
  • --with-debug:这个选项用于启用调试日志。在生产环境的系统中不推荐使用该选项。

2. 优化编译

  • --with-cc=<path>:如果想设置一个不在默认 PATH 下的 C 编译器。
  • --with-cpp=<path>:设置 C 预处理器的相应路径.
  • --with-cc-opt=<options>: 指定必要的 include 文件路径,可能 d(-I<path)指出,也可能是优化(-O4)和指定一个 64 位构建。
  • --with-ld-opt=<options>:包含连接器库的路径(-L)和运行路径(-R)。
  • --with-cpu-opt=<cpu>:通过该选项为特定的 CPU 构建 Nginx。

3. mail 配置选项

  • --with-mail:该选项用于启用 mail 模块,该模块默认没有激活。
  • --with-mail_ssl_module:为了代理任何一种类型的使用 SSL/TLS 的 mail,激活该模块。
  • --without-mail_pop3_module:在启用 mail 模块后,单独地禁用 POP3 模块。
  • --without-mail_imap_module:在启用 mail 模块后,单独地禁用 IMAP 模块。
  • --without-mail_smtp_module:在启用 mail 模块后,单独地禁用 SMTP 模块。
  • --without-http:该选项将完全禁用 http 模块,如果你只想支持 mail,那么可以使用它。

对于典型的 mail 代理,可配置为如下:

./configure -with-mail --with-mail_ssl_module --with-openssl=${BUILD_DIR}/openssl-1.0.1c

对于邮件服务器来说,现在几乎每一个邮件服务器的安装都需要安装 SSL/TLS,并没没有一个邮件代理启用了预期功能的用户。推荐静态编译 OpenSSL,以便对操作系统中的 OpenSSL 库没有依赖性。

4. http 配置选项

  • --without-http-cache:在使用 upstream 模块时,Nginx 能够配置本地缓存内容。这个选项能够禁用缓存。
  • --with-http_perl_module:Nginx 配置能够扩展使用 Perl 代码。这个选项启用这个模块(然而使用这个模块会降低性能)。
  • --with-perl_modules_path=<path>:对于额外嵌入的 Perl 模块,使用该选项指定该 Perl 解析器的路径。也可以通过配置选项来指定 Perl 模块解析器的位置。
  • --with-perl=<path>:如果在默认的路径中没有找到 Perl,那么指定 Perl(5.6 版本以上)的路径。
  • --http-client-body-temp-path=<path>:从客户端收到请求后,该选项设置的目录用于作为请求体临时存放的目录。如果 WebDAV 模块启用,那么推荐设置该路径为同一个文件系统上的目录作为最终的目的地。
  • --http-proxy-temp-path=<path>:在使用代理后,通过该选项设置存放临时文件路径。
  • --http-fastcgi-temp-path=<path>:设置 FastCGI 临时文件的目录。
  • --http-uwsgi-temp-path=<path>:设置 uWSGI 临时文件的目录。
  • --http-scgi-temp-path=<path>:设置 SCGI 临时文件的目录。
  • --with-http_ssl_module:如果需要对流量进行加密,那么可以使用这个选项,在 URLs 中开始部分将会是 https(需要 OpenSSL)。
  • --with-http_realip_module:如果你的 Nginx 在七层负载均衡器或者是其他设备之后,它们将 Http 头中的客户端 IP 地址传递,那么你将会需要启用这个模块。在多个客户处于一个 IP 地址下使用。
  • --with-http_addition_module:这个模块作为一个输出过滤器,使你能够在请求经过一个 location 前或者后时在该 location 本身添加内容。
  • --with-http_xslt_module:该模块用于 XML 响应转换,基于一个或者多个 XSLT 格式(需要 libxml2 和 libxslt 库)。
  • --with-http_image_filter_module:该模块被作为图像过滤器使用,在将图像投递到客户之前进行处理(需要 libgd 库)。
  • --with-http_geoip_module:使用该模块,能够设置各种变量以便在配置文件中的区段使用,基于地理位置查找客户端 IP 地址(需要 MaxMfind GeoIP 库和相应的预编译数据库文件)。
  • --with-http_sub_module:该模块实现了替代过滤,在响应中用一个字符串替代另一个字符串。
  • --with-http_dav_module:启用这个模块将激活使用 WebDAV 的配置指令。请注意,这个模块也只在有需要使用的基础上启用,如果配置不正确,它可能带来安全问题。
  • --with-http_flv_module:如果需要提供 Flash 流媒体视频文件,那么该模块将会提供伪流媒体。
  • --with-http_mp4_module:这个模块支持 H.264/AAC 文件伪流媒体。
  • --with-http_gzip_static_module:当被调用的资源没有 .gz 结尾格式的文件时,如果想支持发送预压缩版本的静态文件,那么使用该模块。
  • --with-http_gunzip_module:对于不支持 gzip 编码的客户,该模块用于为客户解压缩预压缩内容。
  • --with-http_random_index_module:如果你想提供从一个目录中随机选择文件的索引文件,那么这个模块需要被激活。
  • --with-http_secure_link_module:该模块提供了一种机制,它会将一个哈希值链接到一个 URL 中,因此,只有那些使用正确的密码能够计算链接。
  • --with-http_stub_status_module:启用这个模块后会收集 Nginx 自身的状态信息。输出的状态信息可以使用 RRDtool 或类似的东西来绘制成图。

对于网络加速/代理,可如下配置:

./configure --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module --with-openssl=${BUILD_DIR}/openssl-1.0.1c

对于 Web 服务器:

./configure --with-http_stub_status_module

这两个配置不同之处在于它们面对的客户,处于 Web 加速时,会考虑到 SSL 请求的终结,也包括处理代理客户和基于客户来源决策。处于 Web 服务时,则仅需要提供默认文件访问能力。

5. 禁用的配置选项

  • --without-http_charset_module:该字符集模块负责设置 Content-Type 响应头,以及从一个字符集转换到另一个字符集。
  • --without-http_gzip_module:gzip 模块作为一个输出过滤器,在将内容投递到客户时对内容进行压缩。
  • --without-http_ssi_module:该模块是一个过滤器,用于处理 SSI 包含。如果启用 Perl 模块,那么额外的 SSI 指令(perl)可用。
  • --without-http_userid_module:userid 模块能够使得 Nginx 设置 cookies,用于客户标识。变量 $uid_set 和 $uid_got 可以记录用户跟踪。
  • --without-http_access_module:access 模块基于 IP 控制访问 location。
  • --without-http_auth-basic_module:该模块通过 Http 基本身份验证限制访问。
  • --without-http_autoindex_module:如果一个目录中没有 index 文件,那么 autoindex 模块收集这个目录列出文件。
  • --without-http_geo_module:该模块能够让你基于客户端 IP 地址设置配置变量,然后根据这些变量的值采取行动。
  • --without-http_map_module:map 模块能够让你映射一个变量到另一个变量。
  • --without-http_split_clients_module:该模块创建用于 A/B 测试的变量。
  • --without-http_referer_module:该模块能够让 Nginx 阻止基于 Referer Http 头的请求。
  • --without-http_rewrite_module:通过 rewrite 模块能够让你基于变量条件改变 URI。
  • --without-http_proxy_module:使用 proxy 模块允许 Nginx 将请求传递到其他服务器或者服务器组。
  • --without-http_fastcgi_module:FastCGI 模块能够让 Nginx 将请求传递到 FastCGI 服务器。
  • --without-http_uwsgi_module:这个模块能够使得 Nginx 将请求传递到 uWSGI 服务器。
  • --without-http_scgi_module:SCGI 模块能够让 Nginx 将请求传递到 SCGI 服务器。
  • --without-http_memcached_module:该模块能够使得 Nginx 与一个 memcached 服务器进行交互,将响应放置到变量查询中。
  • --without-http_limit_conn_module:该模块能够使得 Nginx 基于某些键,通常是 IP 地址,设置连接限制。
  • --without-http_limit_req_module:通过该模块,Nginx 能够限制每个用户的请求率。
  • --without-http_empty_gif_module:在内存中产生一个 1 像素 * 1 像素的透明 GIF 图像。
  • --without-http_browser_module:browser 模块允许基于 User-Agent Http 请求头配置,变量的设置基于在该头中发现的版本。
  • --without-http_upstream_ip_hash_module:该模块定义了一组可以与不同的代理模块结合使用的服务器。

Nginx之configure选项的更多相关文章

  1. nginx 的socket 选项处理--TCP_DEFER_ACCEPT

    在nginx listen配置项的说明中有一个选项: deferred -- indicates to use that postponed accept(2) on Linux with. the ...

  2. mplayer configure选项中文注释

    mplayer configure选项中文注释(MPlayer-1.0rc2) http://blogold.chinaunix.net/u3/104581/showart_2322466.html ...

  3. Nginx的configure脚本支持选项整理

    在不同版本间,选项可能会有些许变化,请总是使用./configure –help命令来检查当前的选项列表. --prefix=<PATH> #Nginx安装路径.如果没有指定,默认为 /u ...

  4. nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》

  5. Nginx 在configure时的参数

    Nginx 使用 Unix 下常用的 './configure && make && make install' 过程来编译安装. configure 脚本确定系统所具 ...

  6. Nginx的configure各项中文说明

    –prefix=<path> – Nginx安装路径.如果没有指定,默认为 /usr/local/nginx. –sbin-path=<path> – Nginx可执行文件安装 ...

  7. nginx编译安装选项说明

    configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法.然后,它创建 Makefile 文件. configure 支持下面的选项: –prefix= <path ...

  8. nginx的configure流程

    configure配置 nginx的编译过程,第一步是configure.我们使用 --help可以看到configure的很多配置. configure的过程做的事情其实就是检测环境,然后根据环境生 ...

  9. Nginx(./configure --help)

    # ./configure --help --help print this message --prefix=PATH set installation prefix --sbin-path=PAT ...

随机推荐

  1. luogu1731生日蛋糕题解--恶心剪枝

    题目链接 https://www.luogu.org/problemnew/show/P1731 分析 这题真[哔]恶心,加了一堆奇奇怪怪的优化 首先明确一点,半径和高都必须是正整数,意味着它们最小为 ...

  2. js重点——作用域——作用域分类(三)

    一.作用域可以分为全局作用域,局部作用域(函数作用域)和块级作用域. 1.全局作用域 代码在程序中的任何位置都能被访问到,window对象的内置属性都拥有全局作用域. <script> v ...

  3. 2017JAVA面试题附答案

    JAVA基础 JAVA中的几种基本类型,各占用多少字节?   String能被继承吗?为什么? 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变.平 ...

  4. 根据CPU核心数确定线程池并发线程数(转)

    一.抛出问题 关于如何计算并发线程数,一般分两派,来自两本书,且都是好书,到底哪个是对的?问题追踪后,整理如下: 第一派:<Java Concurrency in Practice>即&l ...

  5. SSISDB7:当前正在运行的Package及其Executable

    PM问:“Vic,现在ETL Job跑到哪一个Package了,正在执行哪个Task?”,第一次遇到这个问题时,一下就懵逼了,只能硬着头皮说:“我看看”. 在做项目开发时,这个问题很常见,但是,被很多 ...

  6. Hadoop_23_MapReduce倒排索引实现

    1.1.倒排索引  根据属性的值来查找记录.这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址.由于不是由记录来确 定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invert ...

  7. idou老师教你学Istio05: 如何用Isito实现智能路由配置

    要介绍istio请求路由,我们不由得先从pilot 和 envoy开始谈起. 在服务网格中,Pilot管理和配置所有的envoy实例.在pilot中,你几乎可以配置所有的关于流量导向规则及其他故障恢复 ...

  8. chrome上一些好用的插件

    1. Super Auto Refresh Plus - 这个插件可以自动刷新网页 2. 屏蔽百度推广 - 这个插件可以屏蔽百度搜索的推广广告

  9. golang restful api

    https://medium.com/@petrousov/how-to-build-a-restful-api-in-go-for-phonebook-app-d55f7234a10 ------- ...

  10. Spring入门篇——第3章 Spring Bean装配(上)

    第3章 Spring Bean装配(上) 介绍Bean的作用域.生命周期.Aware接口.自动装配和Resource等内容. 3-1 Spring Bean装配之Bean的配置项及作用域 从上至下依次 ...