Nginx —— configure的命令参数(nginx编译选项)

configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。
make是用来编译的,它从Makefile中读取指令,然后编译,生成目标文件、最终的二进制文件。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。其根据configure命令执行时的参数将Nginx部署到指定的安装目录,包括相关目录的建立和二进制文件、配置文件的复制。
nginx的configure命令支持以下参数:
使用help命令可以查看configure包含的参数。
./configure--help
这里不一一列出help的结果,只是把它的参数分为四大类型,下面将会详述各类型下所有参数的用法和意义!

  • 1. 路径相关的参数
    configure支持的路径相关参数
    参数名称 意义 默认值
    --prefix=PATH Nginx安装部署后的根目录 默认为//usr/local/nginx目录。
    注意:这个目标的设置会影响其他参数中的相对目录。例如:如果设置了--sbin-path = sbin/nginx,那么实际上可执行文件会被放到/usr/local/nginx/sbin/nginx中。
    --sbin-path=PATH 可执行文件的存放路径 /sbin/nginx
    --conf-path=PATH 配置文件的存放路径 /conf/nginx.conf
    --error-log-path=PATH .error日志文件的存放路径。error日志用于定位问题,可以输出多种几倍(包括debug调试级别)的日志。它的配置非常灵活,可以在nginx.conf里配置为不同请求的日志并输出到不同的log文件中。这里是默认的Nginx核心日志路径 /logs/error/log
    --pid-path=PATH pid文件存放的路径。这个文件里 仅以ASC II码存放着Nginx master的进程ID,有了这个进程ID,在使用命令行(例如nginx -s reload)通过读取master进程ID向master进程发送信号时,才能对运行中的Nginx服务产生作用。 /logs/nginx.pid
    --lock-path=PATH lock文件的放置路径
    /logs/nginx.lock
    --builddir=DIR configure执行时与编译期间产生的临时文件放置的目录,包括Makefuile、C源码文件、目标文件、可执行文件等。 /objs
    --with-perl_modules_path=PATH prel module 放置的路径。只有使用了地萨芬的perl module,才会配置这个路径。
    --with-perl=PATH perl binary放置的路径。如果配置的Nginx会执行Perl脚本,哪么就必须要设置此路径。
    --http-log-path=PATH access日志放置的位置。每个http请求在结束时都会记录的访问日志 /logs/access.log
    --http-client-body-temp-path=PATH 处理http请求时如果请求的包体需要暂时存放到临时磁盘文件中,则把这样的临时文件方知道该路径下 /client_body_temp
    --http-proxy-temp-path=PATH Nginx作为http反向代理服务器时,上游服务器产生的HTTP包体在需要临时存放到磁盘文件时,这样的临时文件将放到该路径下 /proxy_temp
    --http-fastcgi-temp-path=PAT Fastcgi 所使用临时文件的放置目录 /fastcgi_temp
    --http-uwsgi-temp-path=PATH uWSGI所使用临时文件的放置目录 /uwsgi_temp
    --http-scgi-temp-path=PATH SCGI所使用临时文件的放置目录 /scgi_temp
















  • 2.编译相关的参数
    configure支持的编译相关参数
    编译参数 意义
    --with-cc=PATH
    C编译器的路径
    --with-cpp=PATH C预编译器的路径
    --with-cc-opt=OPTIONS
    如果希望在Nginx编译期间指定加入一些编译选项,如指定宏或者使用-I 加入某些需要包含的目录这时可以使用该参数达成目的。
    --with-ld-opt=OPTIONS 最终的二进制可执行文件是由编译后生成的目标文件与一些第三方库连接而成的,在执行链接操作时可能会需要指定的链接参数,--with-ld-opt就是用于加入链接时的参数。例如,如果我们希望将某个库链接到Nginx程序中,需要在这里加入--with-ld-opt=-libraryName - L libraryPath,其中libraryName是目标库的名称,libraryPath则是目标库所在的路径。
    --with-cpu-opt=CPU 指定CPU的处理器架构,只能从以下值中选择:pentium pentiumpro pentium3 pentium4 athlon opteron sparc32 sparc64 ppc64







  • 3.依赖软件的相关参数
    PCRE的设置参数
    PCRE库的设置参数 意义
    --without-pcre 如果确认Nginx不用解析正则表达式,也是就是说,nginx.conf配置文件中不会出现正则表达式,那就可以使用这个参数。
    --with-pcre 强制使用PCRE库
    --with-pcre=DIR 指定PCRE库的源码位置
    --with-pcre-opt=OPTIONS 编译PCRE源码时希望加入的编译选项






OpenSSL 的设置参数
OpenSSL库的设置参数
--with-openssl=DIR
指定openssl库的源码位置,在编译时会进入该目录编译openssl源码。
--with-openssl-opt=OPTIONS 编译openssl源码时希望加入的编译选项




原子库的设置参数
atomic(原子)库的设置参数 atomic(原子)库的设置参数
--with-libatomic --with-libatomic=DIR




散列函数库的设置参数
散列函数库的设置参数 散列函数库的设置参数
--with-MD5=DIR --with-MD5-OPT=OPTIONS
--with-MD5-asm --with-SHA1=DIR
--with-SHA1-opt=OPTIONS --with-SHA1-asm





Zlib库的设置参数
Zlib库的设置参数 Zlib库的设置参数
--with-zlib=DIR --with-zlib-opt=OPTIONS
--with-zlib-asm=CPU





  • 4.模块相关的参数
除了少量的核心代码外,nginx完全是由各种功能模块组成的。这些模块会根据配置参数决定自己的次年改为,因此,正确的使用各个模块非常关键。在configure的参数中,我们把它分为五大类。
  1. 事件模块
  2. 默认即编译进入Nginx的HTTP模块
  3. 默认不会编译进入Nginx的HTTP模块
  4. 邮件代理服务器相关的模块
  5. 其他模块
事件模块




【Nginx —— configure的命令参数(nginx编译选项)】 参考书籍: 《深入理解Nginx》陶辉 著

    推荐阅读