nginx之configure解析以及模板简介

1.路径相关的参数

参数名称意义默认值
--prefix=PATHNginx安装部署后的根目录默认为/usr/local/nginx目录。注意:这个目标的设置会影响其他参数中的相对目录。例如,如果设置了--sbin-path=sbin/nginx,那么实际上可执行文件会被放到/usr/local/nginx/sbin/nginx 中
--sbin-pathPATH可执行文件的放置路径<prefix>/sbin/nginx
--conf-path-PATH配置文件的放置路径prefix-/conf/nginx.conf
--error-log-path-PATHerror日志文件的放置路径。error 日志目于定位问题,可输出多种级别(包括iebug 调试级别)的日志。它的配置非常灵活,可以在nginx.conf里配置为不同请求的日志并输出到不同的log文件中。这里是默认的Nginx核心日志路径prefix>/logs/error.log
--pid-path-PATHpid文件的存放路径。这个文件里仅以1SCI码存放着Nginx master的进程ID,有了这个进程ID,在使用命令行(例如ginx -s reload)通过读取master进程ID句master进程发送信号时,才能对运行中的Nginx服务产生作用<prefix>/logs/nginx.pid
--lock-path-PATH--lock-path-PATHprefix>/logs/nginx.lock
--builddir-DIRconfigure执行时与编译期间产生的临时文件放置的目录,包括产生的MakefileC源文件、目标文件、可执行文件等<nginx source path>/objs
--with-perl_modules_path=PATH--with-perl_modules_path=PATH
--with-perl-PATHperl binary放置的路径。如果配置的Nginx会执行Perl脚本,那么就必须要设置此路径
--http-log-path=PATHaccess 日志放置的位置。每一个HTTP请求在结束时都会记录的访问日志prefix>/logs/access.log
--http-client-body-temp-path=PATH处理HTTP请求时如果请求的包体需要香时存放到临时磁盘文件中,则把这样的缶时文件放置到该路径下prefix>/client_body_temp
--http-proxy-temp-path-PATHNginx作为HTTP反向代理服务器时,上游服务器产生的HTTP包体在需要临时存放到磁盘文件时,这样的临时文件将放到该路径下<prefix>/proxy_temp

编译相关的参数

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

模块相关的参数

1)事件模块

编译参数意义
--with-rtsig_module默认情况下,Nginx 是不安装rtsig module 的,即不会把 rtsig module编译进最终的Nginx二进制程序中
--with-select_ module

使用select module处理事件驱动 select是Linux 提供的一种多路复用机制,在epoll调用没有诞生前,例如在Linux2.4及其之前的内核中,select用于支持服务器提供高并发连接

默认情况下,Nginx是不安装select module的,但如果没有找到其他更好的事件模块,该模块将会被安装

--without-select_module不安装
--with-poll_module使用poll module处理事件驱动
poll的性能与select类似,在大量并发连接下性能都远不如 epoll。默认情况下,Nginx是不安装poll module的
 
--without-poll_module 不安装
--with-aio_module使用AIO方式处理事件驱动注意:这里的 aio module只能与FreeBSD操作系统上的kqueue事件处理机制合作Linux上无法使用默认情况下是不安装aio module的

(2)默认即编译进入Nginx的HTTP模块

表一:

默认安装的HTTP模板

意义
--without-http_charset_module不安装http charset module。这个模块可以将服务器发出的HTTP响应重编码
--without-http_gzip_module不安装http gzip module。在服务器发出的HTTP响应包中,这个模块可以按照配置文件指定的content-type对特定大小的HTTP响应包体执行gzip压缩
--without-http_ssi_module不安装http ssi module。该模块可以在向用户返回的HTTP响应包体中加入特定的内容,如HTML文件中固定的页头和页尾
--without-http_userid_module不安装http userid module。这个模块可以通过HTTP请求头部信息里的-些字段认证用户信息,以确定请求是否合法
--without-http_userid_module不安装http access module。这个模块可以根据IP地址限制能够访问服务器的客户端
--without-http_autoindex_module不安装 http autoindex module。该模块提供简单的目录浏览功能
--Without-htt_auth _basic module不安装http auth basic module。这个模块可以提供最简单的用户名/密码认证
--without-http_geo_module不安装http geo module。这个模块可以定义一些变量,这些变量的值将与客户端IP地址关联,这样Nginx针对不同的地区的客户端(根据IP地址判断)返回不一样的结果,例如不同地区显示不同语言的网页

表二:

--without-http_map_module不安装http map module。这个模块可以建立一个 key/value 映射表,不同的key得到相应的value,这样可以针对不同的URL做特殊处理。例如,返回302重定向响应时,可以期望URL不同时返回的Location字段也不一样
--without-http_rewrite_module不安装http split client module。该模块会根据客户端的信息,例如IP地址、header头、cookie等,来区分处理
--without-http referer_module不安装http referer module。该模块可以根据请求中的referer字段来拒绝请求
--without-http_split_clients_module不安装http rewrite module。该模块提供HTTP请求在Nginx服务内部的重定向功能,依赖PCRE库
--without-http_proxy_module不安装http proxy module。该模块提供基本的HTTP反向代理功能不安装 http 
--without-http_fastcgi_modulefastcgi module。该模块提供 FastCGI功能
--without http_uwsgi_module不安装http uwsgi module。该模块提供uwSGI功能不
--without-http_scgi_module不安装http scgi module。该模块提供SCGI功能
--without-http_memcached_module不安装http memcached module。该模块可以使得 Nginx直接由上游的memcached服务读取数据,并简单地适配成HTTP响应返回给客户端
--without-http limit_zone_module不安装http limit zone module。该模块针对某个IP地址限制并发连接数。例如,使Nginx对一个IP地址仅允许一个连接
--without-http_browser_module不安装http browser module。该模块会根据HTTP请求中的user-agent产段(该字段通常由浏览器填写)来识别浏览器
--without-http_empty _gif_module不安装http empty gif module。该模块可以使得Nginx在收到无效请求时,立刻返回内存中的1×1像素的GIF图片。这种好处在于,对于明显的无效请求不会去试图浪费服务器资源
--without-http_limit req module不安装http limit req module。该模块针对某个IP地址限制并发请求数
--without-http_upstream_ip_hash_module不安装http upstream ip hash module。该模块提供当Nginx与后端server建立连接时,会根据IP做散列运算来决定与后端哪台server通信,这样可以实现负载均衡

可选HTTP的模板

--with-http_xslt_modul

安装http xsit module。这个模块可以使XML格式的数据在发给客户端前加入XSL渲染安装http xsit module。这个模块可以使XML格式的数据在发给客户端前加入XSL渲染
--with-http_image_filter_module安装http image_filter module。这个模块将符合配置的图片实时压缩为指定大小(width*height)的缩略图再发送给用户,目前支持JPEG,PNG, GIF格式。
--with-http_geoip_module安装http geoip module。该模块可以依据MaxMind GeolP的P地址数据库对客户端的P地址得到实际的地理位置信息
注意:该库依赖于MaxMind GeolP的库文件,可访问 http://geolite.maxmind.
com/download/geoip/database/GeoLiteCity.dat.gz获取
 
--with-http_sub_module安装http sub module。该模块可以在Nginx返回客户端的HTTP响应包中将指定的字符串替换为自己需要的字符串
--with-http mp4_module安装http flv module。这个模块可以在向客户端返回响应时、对FLV格式的视频文件在 header头做一些处理,使得客户端可以观看、拖动FLV视频安装http mp4 module。该模块使客户端可以观看、拖动MP4视频
--with-http_gzip_static_module安装http gzip static module。如果采用gzip模块把一些文档进行gzip格式压缩后再返回给客户端,那么对同一个文件每次都会重新压缩,这是比较消耗服务器CPU资源的。gzip static模块可以在做gzip压缩前,先查看相同位置是否有已经做过gzip压缩的.gz文件,如果有,就直接返回。这样就可以预先在服务器上做好文档的压缩,给CPU减负
--with-http_ random_index_module安装http random index module。该模块在客户端访问某个目录时,随机返回该目录下的任意文件
--with-http_secure_link_module安装 http secure link module。该模块提供一种验证请求是否有效的机制。例如,它会验证URL 中需要加入的token参数是否属于特定客户端发来的,以及检查时间戳是否过期
--with-http_stub_status_module安装 http stub status module。该模块可以让运行中的Nginx提供性能统计页面,获取相关的并发连接、请求的信息
--with-http degradation module安装http stub status module。该模块可以让运行中的Nginx提供性能统计面.获取相关的并发连接、请求的信息(14.2.1节中简单介绍了该模块的理)
--with-google perftools_module安装google perftools module。该模块提供 Google 的性能测试工具

邮件代理服务器相关的mail模块

可选参数意义
--with-mail安装邮件服务器反向代理模块,使Nginx可以反向代理 IMAP、POP3、SMTP等协议。该模块默认不安装
--with-mail_ssl_module不安装mail pop3 module。在使用--with-mail参数后,pop3 module是默认安装的,以使 Nginx支持 POP3协议
--without-mail_pop3_module不安装mail imap module。在使用--with-mail参数后,imap module是默认安装的,以使Nginx支持IMAP
--without-mail_imap_module不安装mail imap module。在使用--with-mail参数后,imap module是默认安装的,以使Nginx支持IMAP
--without-mail_imap_module不安装mail smtp module。在使用--with-mail参数后,smtp module是默认安

其他参数

参数意义
--with-debug将Nginx需要打印 debug调试级别日志的代码编译进Nginx。这样可以在Nginx运行时通过修改配置文件来使其打印调试日志,这对于研究、定位 Nginx问题非常有帮助
--add module=PATH当在Nginx里加入第三方模块时,通过这个参数指定第三方模块的路径。这个参数将在下文如何开发HTTP模块时使用到
--without-http禁用HTTP服务器
--without-http-cache禁用HTTP服务器里的缓存Cache特性
--with-file-aio启用文件的异步IO功能来处理磁盘文件,这需要Linux内核支持原生的异步
--with-ipv6使Nginx支持IPv6
--user==USER注意:不要将启动worker进程的用户设为root,在 worker进程出问题时master进程要具备停止/启动worker进程的能力
--group=GROUP指定Nginx worker进程运行时所属的组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值