Nginx源代码编绎参数详解
- 2018-11-13 21:00:00
- 赵勤松 原创
- 2347
编绎环境:CentOS 7.2
源代码版本:nginx-1.14.0.tar.gz
一、准备工作
1.获得源代码包#wget http://nginx.org/download/nginx-1.14.0.tar.gz(最新源码包可在http://nginx.org/上获取)
2.解压源代码包#tar zxvf nginx-1.14.0.tar.gz
3.获得编绎参数帮助#./configure --help,获得的信息如下
--help print this message
--prefix=PATH set installation prefix
--sbin-path=PATH set nginx binary pathname
--modules-path=PATH set modules path
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for
worker processes
--group=GROUP set non-privileged group for
worker processes
--build=NAME set build name
--builddir=DIR set build directory
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-threads enable thread pool support
--with-file-aio enable file AIO support
--with-http_ssl_module enable ngx_http_ssl_module
--with-http_v2_module enable ngx_http_v2_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_xslt_module enable ngx_http_xslt_module
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
--with-http_image_filter_module enable ngx_http_image_filter_module
--with-http_image_filter_module=dynamic
enable dynamic ngx_http_image_filter_module
--with-http_geoip_module enable ngx_http_geoip_module
--with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module
--with-http_sub_module enable ngx_http_sub_module
--with-http_dav_module enable ngx_http_dav_module
--with-http_flv_module enable ngx_http_flv_module
--with-http_mp4_module enable ngx_http_mp4_module
--with-http_gunzip_module enable ngx_http_gunzip_module
--with-http_gzip_static_module enable ngx_http_gzip_static_module
--with-http_auth_request_module enable ngx_http_auth_request_module
--with-http_random_index_module enable ngx_http_random_index_module
--with-http_secure_link_module enable ngx_http_secure_link_module
--with-http_degradation_module enable ngx_http_degradation_module
--with-http_slice_module enable ngx_http_slice_module
--with-http_stub_status_module enable ngx_http_stub_status_module
--without-http_charset_module disable ngx_http_charset_module
--without-http_gzip_module disable ngx_http_gzip_module
--without-http_ssi_module disable ngx_http_ssi_module
--without-http_userid_module disable ngx_http_userid_module
--without-http_access_module disable ngx_http_access_module
--without-http_auth_basic_module disable ngx_http_auth_basic_module
--without-http_mirror_module disable ngx_http_mirror_module
--without-http_autoindex_module disable ngx_http_autoindex_module
--without-http_geo_module disable ngx_http_geo_module
--without-http_map_module disable ngx_http_map_module
--without-http_split_clients_module disable ngx_http_split_clients_module
--without-http_referer_module disable ngx_http_referer_module
--without-http_rewrite_module disable ngx_http_rewrite_module
--without-http_proxy_module disable ngx_http_proxy_module
--without-http_fastcgi_module disable ngx_http_fastcgi_module
--without-http_uwsgi_module disable ngx_http_uwsgi_module
--without-http_scgi_module disable ngx_http_scgi_module
--without-http_grpc_module disable ngx_http_grpc_module
--without-http_memcached_module disable ngx_http_memcached_module
--without-http_limit_conn_module disable ngx_http_limit_conn_module
--without-http_limit_req_module disable ngx_http_limit_req_module
--without-http_empty_gif_module disable ngx_http_empty_gif_module
--without-http_browser_module disable ngx_http_browser_module
--without-http_upstream_hash_module
disable ngx_http_upstream_hash_module
--without-http_upstream_ip_hash_module
disable ngx_http_upstream_ip_hash_module
--without-http_upstream_least_conn_module
disable ngx_http_upstream_least_conn_module
--without-http_upstream_keepalive_module
disable ngx_http_upstream_keepalive_module
--without-http_upstream_zone_module
disable ngx_http_upstream_zone_module
--with-http_perl_module enable ngx_http_perl_module
--with-http_perl_module=dynamic enable dynamic ngx_http_perl_module
--with-perl_modules_path=PATH set Perl modules path
--with-perl=PATH set perl binary pathname
--http-log-path=PATH set http access log pathname
--http-client-body-temp-path=PATH set path to store
http client request body temporary files
--http-proxy-temp-path=PATH set path to store
http proxy temporary files
--http-fastcgi-temp-path=PATH set path to store
http fastcgi temporary files
--http-uwsgi-temp-path=PATH set path to store
http uwsgi temporary files
--http-scgi-temp-path=PATH set path to store
http scgi temporary files
--without-http disable HTTP server
--without-http-cache disable HTTP cache
--with-mail enable POP3/IMAP4/SMTP proxy module
--with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module
--with-mail_ssl_module enable ngx_mail_ssl_module
--without-mail_pop3_module disable ngx_mail_pop3_module
--without-mail_imap_module disable ngx_mail_imap_module
--without-mail_smtp_module disable ngx_mail_smtp_module
--with-stream enable TCP/UDP proxy module
--with-stream=dynamic enable dynamic TCP/UDP proxy module
--with-stream_ssl_module enable ngx_stream_ssl_module
--with-stream_realip_module enable ngx_stream_realip_module
--with-stream_geoip_module enable ngx_stream_geoip_module
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
--with-stream_ssl_preread_module enable ngx_stream_ssl_preread_module
--without-stream_limit_conn_module disable ngx_stream_limit_conn_module
--without-stream_access_module disable ngx_stream_access_module
--without-stream_geo_module disable ngx_stream_geo_module
--without-stream_map_module disable ngx_stream_map_module
--without-stream_split_clients_module
disable ngx_stream_split_clients_module
--without-stream_return_module disable ngx_stream_return_module
--without-stream_upstream_hash_module
disable ngx_stream_upstream_hash_module
--without-stream_upstream_least_conn_module
disable ngx_stream_upstream_least_conn_module
--without-stream_upstream_zone_module
disable ngx_stream_upstream_zone_module
--with-google_perftools_module enable ngx_google_perftools_module
--with-cpp_test_module enable ngx_cpp_test_module
--add-module=PATH enable external module
--add-dynamic-module=PATH enable dynamic external module
--with-compat dynamic modules compatibility
--with-cc=PATH set C compiler pathname
--with-cpp=PATH set C preprocessor pathname
--with-cc-opt=OPTIONS set additional C compiler options
--with-ld-opt=OPTIONS set additional linker options
--with-cpu-opt=CPU build for the specified CPU, valid values:
pentium, pentiumpro, pentium3, pentium4,
athlon, opteron, sparc32, sparc64, ppc64
--without-pcre disable PCRE library usage
--with-pcre force PCRE library usage
--with-pcre=DIR set path to PCRE library sources
--with-pcre-opt=OPTIONS set additional build options for PCRE
--with-pcre-jit build PCRE with JIT compilation support
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional build options for zlib
--with-zlib-asm=CPU use zlib assembler sources optimized
for the specified CPU, valid values:
pentium, pentiumpro
--with-libatomic force libatomic_ops library usage
--with-libatomic=DIR set path to libatomic_ops library sources
--with-openssl=DIR set path to OpenSSL library sources
--with-openssl-opt=OPTIONS set additional build options for OpenSSL
--with-debug enable debug logging
下面以表格形式对参数进行详细介绍
| 编号 | 参数 | 详细说明 |
|---|---|---|
| 1 | --help | 输出详细的编绎帮助信息 |
| 2 | --prefix=PATH | 安装目标路径,默认为/usr/local/nginx |
| 3 | --sbin-path=PATH | sbin文件路径,默认为/usr/local/nginx/sbin |
| 4 | --modules-path=PATH | 动态模块路径,默认为/usr/local/nginx/modules |
| 5 | --conf-path=PATH |
配置文件路径,默认为/usr/local/nginx/conf 此路径必须具体到文件名,安装程序自动提取对应的目录作为配置文件目录 |
|
6 |
--error-log-path=PATH | 错误日志路径,默认为/usr/local/nginx/logs |
| 7 | --pid-path=PATH | nginx 主进程PID路径,默认为/usr/local/nginx/logs |
| 8 | --lock-path=PATH |
nginx唯一性锁定路径,默认为/usr/local/nginx/logs nginx启动时,将自动创建此文件,防止多个nginx服务同时启动 |
| 9 | --user=USER | 设定nginx以指定用户身份启动 |
| 10 | --group=GROUP | 设定nginx以指定群组身份启动 |
| 11 | --build=NAME |
设定一个可选的编绎名称 |
| 12 | --builddir=DIR |
设定一个编绎目录 |
| 13 | --with-select_module |
支持含有 select模式的IO多路复用功能的模块 |
| 14 | --without-select_module | 禁用含有 select模式的IO多路复用功能的模块 |
| 15 | --with-poll_module |
支持含有 poll模式的IO多路复用功能的模块 |
| 16 | --without-poll_module | 禁用含有 poll模式的IO多路复用功能的模块 |
| 17 | --with-threads | 使用线程池机制 |
| 18 | --with-file-aio | 使用 AIO机制操作文件 |
| 19 |
--with-http_ssl_module |
支持使用https访问 |
| 20 |
--with-http_v2_module |
支持HTTP2协议 |
| 21 |
--with-http_realip_module |
支持记录原始客户端的IP信息,主要用于负载均衡模式的nginx获取真实IP |
| 22 |
--with-http_addition_module |
在响应内容中增加额外信息 |
| 23 |
--with-http_xslt_module |
支持使用xslt样式表来处理xml文件 |
| 24 | --with-http_xslt_module=dynamic | 将xslt支持编绎为动态模块 |
| 25 | --with-http_image_filter_module |
支持图片过滤功能,支持缩放,旋转等操作,减少读写IO |
| 26 | --with-http_image_filter_module=dynamic | 将图片过滤编绎为动态模块 |
| 27 | --with-http_geoip_module |
使用预编绎的 MaxMind数据库解析客户端IP地址,获取地理位置信息 |
| 28 | --with-http_geoip_module=dynamic |
将解析IP功能编绎为动态模块 |
| 29 | --with-http_sub_module | 在响应内容中进行字符串替换 |
| 30 | --with-http_dav_module | 为http WebDav增加PUT,DELETE,MKCOL,COPY和MOVE等方法 |
| 31 | --with-http_flv_module | 支持flv视频播放 |
| 32 | --with-http_mp4_module | 支持mp4视频播放 |
| 33 | --with-http_gunzip_module | 为不支持gzip模块的客户端提供解压内容 |
| 34 | --with-http_gzip_static_module | 支持静态压缩。动态压缩是每次输出时都先进行内容压缩,然后再读取压缩 内容输出;静态压缩则先查找是否有已经压缩好的文件,如果有则直接输出 |
| 35 | --with-http_auth_request_module | 支持第三方认证,判断nginx用户的访问权限 |
| 36 | --with-http_random_index_module | 支持随机展示主页功能(随机选取根目录下的文件进行输出,.开头的除外) |
| 37 | --with-http_secure_link_module | 支持链接权限和过期时间判定,主要用于防盗链等应用 |
| 38 | --with-http_degradation_module | 允许在内存不足的情况下返回204或444码 |
| 39 | --with-http_slice_module | 对过大的文件,使用分片的形式返回给客户端 |
| 40 | --with-http_stub_status_module | 支持使用http来获取nginx运行状态 |
| 41 | --without-http_charset_module | 禁用重新编码功能(从服务端返回至客户端的内容,如果是单字节编码,可以根据charset进行重新编码) |
| 42 | --without-http_gzip_module | 禁用gzip功能(从服务端返回客户端的内容,不使用gzip进行压缩) |
| 43 | --without-http_ssi_module | 禁用SSI(Server Side Inside)服务端网页生成机制 |
| 44 | --without-http_userid_module |
禁用cookie方式设置与识别用户功能 |
| 45 | --without-http_access_module | 禁用deny,allow等限制用户访问的功能 |
| 46 | --without-http_auth_basic_module | 禁用本地认证功能(输入用户名和密码进行验证,成功后才能访问相应链接) |
| 47 | --without-http_mirror_module | 禁用流量镜像功能,主要用于压力测试等 |
| 48 |
--without-http_autoindex_module |
当前目录下没有默认索引文件时,禁止自动生成目录内文件列表 |
| 49 |
--without-http_geo_module |
禁止使用geo指令获取客户端IP |
| 50 | --without-http_map_module | 禁用使用map指令映射变量 |
| 51 | --without-http_split_clients_module | 禁止使用split_clients进行负载均衡 |
| 52 | --without-http_referer_module | 禁止处理referer头中的信息 |
| 53 | --without-http_rewrite_module | 禁止使用重定向指令 |
| 54 | --without-http_proxy_module | 禁止使用代理指令 |
| 55 | --without-http_fastcgi_module | 禁止将请求传递到fastcgi服务器 |
| 56 | --without-http_uwsgi_module | 禁止将请求传递到uwsgi服务器 |
| 57 | --without-http_scgi_module | 禁止将请求传递到scgi服务器 |
| 58 | --without-http_grpc_module | 禁止支持gRPC框架 |
| 59 | --without-http_memcached_module | 禁用memcached缓存页面 |
| 60 | --without-http_limit_conn_module | 禁用限制连接数指令 |
| 61 | --without-http_limit_req_module | 禁用限制请求数指令 |
| 62 | --without-http_empty_gif_module | 禁用生成空白gif图片指令 |
| 63 | --without-http_browser_module | 禁止通过识别User-Agent中的值来判断浏览器类型 |
| 64 | --without-http_upstream_hash_module |
禁止使用将URL进行hash方式的负载均衡(每个URL指向固定服务器) |
| 65 | --without-http_upstream_ip_hash_module |
禁止使用将IP进行hash方式的负载均衡(每个用户指定固定服务器) |
| 66 | --without-http_upstream_least_conn_module | 禁止使用最少连接数方式的负载均衡(当前连接数/权重,数值最小的进行跳转) |
| 67 | --without-http_upstream_keepalive_module | 禁止使用长连接方式与后端进行连接 |
| 68 | --without-http_upstream_zone_module | 禁止使用zone方式的负载均衡 |
| 69 | --with-http_perl_module | 支持使用perl功能 |
| 70 | --with-http_perl_module=dynamic | 将perl功能编绎为动态模块 |
| 71 | --with-perl_modules_path=PATH | 设定perl模块的路径,编绎使用 |
| 72 | --with-perl=PATH | 设定perl命令的路径,编绎使用 |
| 73 | --http-log-path=PATH | nginx服务器访问日志存储路径,具体到文件名 |
| 74 | --http-client-body-temp-path=PATH | 设定生成正文时的临时文件存储目录 |
| 75 | --http-proxy-temp-path=PATH | 设定从代理服务器收到的数据的临时存储目录 |
| 76 | --http-fastcgi-temp-path=PATH | 设定从fastcgi服务器收到的数据的临时存储目录 |
| 77 | --http-uwsgi-temp-path=PATH | 设定从uwsgi服务器收到的数据的临时存储目录 |
| 78 | --http-scgi-temp-path=PATH | 设定从scgi服务器收到的数据的临时存储目录 |
| 79 | --without-http | 禁止编绎http,只支持mail时使用此参数 |
| 80 | --without-http-cache | 禁止使用http的缓存机制 |
| 81 | --with-mail | 支持mail功能 |
| 82 | --with-mail=dynamic | 将mail功能编绎为动态模块 |
| 83 | --with-mail_ssl_module |
支持SSL方式的邮件服务器 |
| 84 | --without-mail_pop3_module | 禁止连接pop3方式的收件服务器 |
| 85 | --without-mail_imap_module | 禁止连接imap方式的收件服务器 |
| 86 | --without-mail_smtp_module | 禁止连接smtp方式的发件服务器 |
| 87 | --with-stream | 启用stream模块,主要用于四层协议的转发,代理和负载均衡 |
| 88 | --with-stream=dynamic | 将stream模块编绎为动态模块 |
| 89 | --with-stream_ssl_module | 使用https方式进行连接 |
| 90 | --with-stream_realip_module |
启用用户端IP地址转发 |
| 91 | --with-stream_geoip_module | 支持预编绎的MaxMind数据库,获取地理位置信息 |
| 92 | --with-stream_geoip_module=dynamic | 将支持地理位置获取功能编绎为动态模块 |
| 93 | --with-stream_ssl_preread_module | 在预读阶段从ClientHello消息中提取信息 |
| 94 | --without-stream_limit_conn_module | 禁用限制连接数指令 |
| 95 | --without-stream_access_module | 禁用deney,allow等指令来限制访问 |
| 96 | --without-stream_geo_module |
禁止使用geo指令获取IP信息 |
| 97 | --without-stream_map_module | 禁止使用map指令映射变量 |
| 98 | --without-stream_split_clients_module | 禁止使用split_clients进行负载均衡 |
| 99 | --without-stream_return_module | 禁止使用return指令向客户端发送信息 |
| 100 | --without-stream_upstream_hash_module |
禁止使用将URL进行hash方式的负载均衡(每个URL指向固定服务器) |
| 101 | --without-stream_upstream_least_conn_module | 禁止使用最少连接数方式的负载均衡(当前连接数/权重,数值最小的进行跳转) |
| 102 | --without-stream_upstream_zone_module |
禁止使用zone方式的负载均衡 |
| 103 | --with-google_perftools_module | 启用谷歌的perftools开发库 |
| 104 | --with-cpp_test_module |
测试C++模块中的C函数能否通过编绎 |
| 105 | --add-module=PATH | 启用第三方模块,使用load_module加载 |
| 106 | --add-dynamic-module=PATH | 启用第三方动态模块,使用load_module加载 |
| 107 | --with-compat | 启用动态模块兼容性 |
| 108 | --with-cc=PATH | 设定编绎时cc命令的路径 |
| 109 | --with-cpp=PATH | 设定编绎时cpp命令的路径 |
| 110 | --with-cc-opt=OPTIONS | 设定编绎时cc命令所需的参数 |
| 111 | --with-ld-opt=OPTIONS | 设定编绎连接时ld所需的参数 |
| 112 | --with-cpu-opt=CPU |
为特定CPU编绎版本 |
| 113 | --without-pcre | 禁用使用正则表达式 |
| 114 | --with-pcre | 支持正则表达式 |
| 115 | --with-pcre=DIR | 设定编绎时正则表达式开发库的路径 |
| 116 | --with-pcre-opt=OPTIONS | 设定编绎时正则表达式所需的参数 |
| 117 | --with-pcre-jit | 编绎时支持实时编绎功能 |
| 118 | --with-zlib=DIR | 设定编绎时zlib开发库的路径 |
| 119 | --with-zlib-opt=OPTIONS | 设定编时zlib所需的参数 |
| 120 | --with-zlib-asm=CPU |
为指定的CPU设定相应的汇编源进行优化 |
| 121 | --with-libatomic | 支持原子内存操作 |
| 122 | --with-libatomic=DIR | 设定原子内存操作开发库的路径 |
| 123 | --with-openssl=DIR | 设定支持openssl的开发库路径 |
| 124 | --with-openssl-opt=OPTIONS | 设定编绎openssl所需的参数 |
| 125 | --with-debug | 启用debug日志 |
| 联系人: | powereye |
|---|---|
| Email: | zqs@someapp.cn |
| QQ: | 1134846 |
| 微信: | powereye |