首页 » LANMP » nginx » 正文

Nginx-编译参数详解

Nginx 常见参数(较少使用的参数不予列出):

–prefix= 指向安装目录
–sbin-path 指向(执行)程序文件(nginx)
–conf-path= 指向配置文件(nginx.conf)
–pid-path= 指向 pid 文件(nginx.pid)
–user= 指定程序运行时的非特权用户
–group= 指定程序运行时的非特权用户组

–with-file-aio 启用 file aio 支持(一种 APL 文件传输格式)
–with-ipv6 启用 ipv6 支持
–with-http_ssl_module 启用 ngx_http_ssl_module 支持(使支持 https 请求,需已安装 openssl)
–with-http_realip_module 启用 ngx_http_realip_module 支持(这个模块允许从请求标头更改客户端的 IP 地址值,默认为关)
–with-http_addition_module 启用 ngx_http_addition_module 支持(作为一个输出过滤器,支持不完全缓冲,分部分响应请求)
–with-http_image_filter_module 启用 ngx_http_image_filter_module 支持(传输 JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd 库要用到)
–with-http_geoip_module 启用 ngx_http_geoip_module 支持(该模块创建基于与 MaxMind GeoIP 二进制文件相配的客户端 IP 地址的 ngx_http_geoip_module 变量)
–with-http_sub_module 启用 ngx_http_sub_module 支持(允许用一些其他文本替换 nginx 响应中的一些文本)
–with-http_gzip_static_module 启用 ngx_http_gzip_static_module 支持(在线实时压缩输出数据流)
–with-http_stub_status_module 启用 ngx_http_stub_status_module 支持(获取 nginx 自上次启动以来的工作状态)
–without-http_gzip_module 禁用 ngx_http_gzip_module 支持(该模块同-with-http_gzip_static_module功能一样)
–without-http_userid_module 禁用 ngx_http_userid_module 支持(该模块用来处理用来确定客户端后续请求的 cookies)
–without-http_access_module 禁用 ngx_http_access_module 支持(该模块提供了一个简单的基于主机的访问控制。允许/拒绝基于 ip 地址)
–without-http_auth_basic_module 禁用 ngx_http_auth_basic_module(该模块是可以使用用户名和密码基于 http 基本认证方法来保护你的站点或其部分内容)
–without-http_map_module 禁用 ngx_http_map_module 支持(使用任意的键/值对设置配置变量)
–without-http_split_clients_module 禁用 ngx_http_split_clients_module 支持(该模块用来基于某些条件划分用户。条件如:ip 地址、报头、cookies 等等)
–without-http_rewrite_module 禁用 ngx_http_rewrite_module 支持

–add-module= 启用外部模块支持
–with-cc= 指向 C 编译器路径
–with-cc-opt= 设置C编译器参数(PCRE库,需要指定–with-cc-opt=”-I /usr/local/include”,如果使用select()函数则需要同时增加文件描述符数量,可以通过–with-cc- opt=”-D FD_SETSIZE=2048”指定。)
–with-ld-opt= 设置连接文件参数。(PCRE 库,需要指定–with-ld-opt=”-L /usr/local/lib”。)
–with-cpu-opt= 指定编译的 CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
–without-pcre 禁用 pcre 库
–with-pcre 启用 pcre 库
–with-pcre= 指向 pcre 库文件目录
–with-pcre-opt= 在编译时为 pcre 库设置附加参数
–with-zlib= 指向 zlib 库目录,指向一个高性能 ZLIB 库,可以提升性能哦
–with-zlib-opt= 在编译时为 zlib 设置附加参数
–with-zlib-asm= 为指定的 CPU 使用 zlib 汇编源进行优化,CPU 类型为 pentium, pentiumpro
–with-libatomic 为原子内存的更新操作的实现提供一个架构
–with-libatomic= 指向 libatomic_ops 安装目录
–with-openssl= 指向 openssl 安装目录
–with-openssl-opt 在编译时为 openssl 设置附加参数
–with-debug 启用 debug 日志


rewrite 模块依赖 pcre-devel
ssl 模块依赖 openssl-devel
image_filter 模块依赖 gd-devel
Gzip 模块依赖 zlib
当然,要求不高的情况下可以用 yum 直接安装。有些模块如 rewrite,upstream 是默认内置编译的,所以没有–with 参数,可能只有–without 参数或根本没法选择强制编译的。所以,不要困惑,说我 XX 模块要不要在编译时指定啊,为啥指定了反而报错。

我使用的参数:

稍微解释下,-march=native 表示让编译器自动适配 CPU,最大程度提升编译后程序的性能。
-g 表示 debug版本编译。Nginx 默认配置和编译是带-g 选项的,这样会使可执行文件变大,去掉-g 就很小了,运行效率也会提高。
也可修改 auto/cc/gcc 文件,将 CFLAGS=”$CFLAGS -g”这一行注释掉,大约是倒数第 8 行。

发表评论

正在加载验证码......

请先完成验证