比较全面的Nginx相关配置说明

 

configure支持的路径相关参数

     参数名称

   意义

默认值

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

 

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

 

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

 

OpenSSL的设置参数
OpenSSL库的设置参数 意义
--with-openssl=DIR

指定OpenSSL库的源码位置,在编译Nginx时会进入该目录编译OpenSSL源码

注意:如果web服务器支持HTTPS 也就是SSL协议, Nginx 要求必须使用OpenSSL.可以访问 http://www.openssl.org/免费下载

--with-openssl-opt=OPTIONS 编译OpenSSl源码时希望加入的编译选项

 

原子库的设置参数
atomic(原子)库的设置参数 意义
--with-libatomic 强制使用 atomic库, atomic库是CPU架构独立的一种原子操作的实现.他支持一下体系架构:x86(包括 x86_64),PPC64,Sparc64(V9或者更高的版本)或者安装了GCC4.0及更高的版本的架构,
--with-libatomic=DIR atomic库所在的位置

 

散列函数库的设置参数
散列函数库的设置参数 意义
--with-MD5=DIR

指定MD5库的源码位置,在编译Nginx时会进入该目录编译MD5源码

注意:Nginx源码中已经有了MD5算法的实现,如果没有特殊的要求,那么完全可以使用Nginx自身实现的MD5算法

--with-MD5-opt=OPTIONS 编译MD5源码时希望加入的编译选项
--with-MD5-asm 使用MD5的汇编源码
--with-SHA1=DIR

指定SHA1库的源码位置,在编译Nginx时会进入该目录编译SHA1源码,

注意: OpenSSL 中已经有了SHA1的算法实现,如果已经安装了OpenSSl那么完全可以使用OpenSSl实现的SHA1算法的实现

--with-SHA1-opt=OPTIONS 编译SHA1源码是希望加入的编译选项
--with-SHA1-asm 使用SHA1的汇编源码

 

zlib库的设置参数
zlib库的设置参数 意义
--with-zlib=DIR 指定zlib库的源码位置,在编译Nginx时会进入该目录编译zlib源码,如果使用了gzip压缩功能,就需要zlib库的支持
--with-zlib-opt=OPTIONS 编译zlib源码时希望加入的 编译选项
--with-zlib-asm=CPU 指定对特定的CPU使用zlib库的汇编优化功能,目前仅支持两种架构 pentium 和 pentiumpro
configure 支持的事件模块参数
编译参数 意义
--with-rtsig_module 使用rtsig module 处理事件驱动,默认情况下,Nginx是不安装rtsig module module 的, 即不会把rtsig module 编译进最终的Nginx二进制程序中
--with-select-module

使用select module 处理时间驱动

select 是 Linux提供的一种多路复用机制, 在epoll调用没有诞生前, 例如在Linux 2.4及其之前的内核中,selct用于支持服务器提供的高并发连接

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

--without-select_module 不安装select_module模块
--with-poll-module

使用poll module 处理时间驱动

poll 的性能与select 类似. 在大量并发连接下性能都远不如epoll.默认情况下,Nginx是不安装poll module 的

--without-poll_module 不安装pollmodule
--with-aio-module

使用AIO方式处理时间驱动

注意:这里的aio module 只能与FreeBSD操作系统上的kqueue时间处理机制合作,Linux上无法使用,默认情况下是不安装aio moudule的

configure 中默认编译到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_access_module 不安装http auth basic module 这个模块可以根据IP地址限制能够访问服务器的客户端
--without-http_auth_basic_module 不安装http auth basic module 这个模块可以提供最简单的用户名/密码认证
--without-http_autoindex_module 不安装http autoindex 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_split_clients_module 不安装 http split client module 该模块会根据客户端的信息 例如:IP地址 header头,cookies等来区分处理
--without-http_referer_module 不安装http referer module 该模块可以根据请求中的referer字段来拒绝请求
--without-http_proxy_module 不安装http proxy module 该模块提供基本的HTTP反向代理功能
--without-http_rewrite_module 不安装http rewrite module 该模块提供HTTP请求在Nginx服务器内部的重定向功能,依赖PCRE库
--without-http_fastcgi_module 不安装 http fastcgi module 该模块提供FastCGI功能
--without-http_uwsgi_module 不安装 http uwsgi module 该模块提供wWSCGI功能
--without-http_scgi_module 不安装http scgi module 该模块提供SCGI 功能
--without-http_memcached_module 不安装 http memcached module 不安装http memcached module 该模块可以使得Nginx直接由上游的memcached服务读取数据,并简单的适配成HTTP响应返回给客户端
--without-http_limit_zone_module 不安装http limit zone module 该模块针对某个IP地址限制并发连接数 例如:是Nginx对一个IP地址仅允许一个连接
--without-limit_req_module 不安装http limit req module 该模块针对某个IP地址限制并发连接数
--without-http_empty_gif_module 不安装http empty gif module 该模块可以使得Nginx在收到无效请求时立即返回内存中的1X1像素的gif图片 这种好处在于,对于明显的无效请求不会去试图浪费服务器资源
--without-http_brower_module 不安装 http browser module 该模块会根据HTTP请求中的user-agent字段(该字段通常由浏览器填写)来识别浏览器
--without-http_upstream_ip_hash_module 不安装http upstream ip hash module 该模块提供当Nginx与后端server建立连接时, 会根据IP做散列运算来决定与后端哪台server通信,这样可以实现负载均衡

 

configure中默认不会编译到Nginx中的HTTP模块参数
可选的HTTP模块 意义
--with-http_ssl_module

安装http ssl module. 该模块使Nginx支持SSL协议,提供HTTPS服务.

注意:该模块的安装依赖于OpenSSL开源软件,即首先应确保已经在之前的参数中配置了OpenSSL

--with-http_realip_module 安装http realip module 该模块可以从客户端请求里的header信息(如X-Real-IP 或者 X-Forwarded-For)中获取真正的客户端IP地址
--with-http_addition_module 安装http addition module 该模块可以在返回客户端的HTTP包体头部或者尾部增加内容
--with-http-xslt-module

安装http xslt module 这个模块可以使XML格式的数据再发给客户端前加入XSL渲染

注意:这个模块依赖于libxml2和libxslt库,安装它之前首先确保上述两个软件已经安装

--with-http_image_filter_module

安装http image_filter module 这个模块将符合配置的图片实时压缩为指定大小(width*height)的缩略图在发送给客户,目前支持JPEG,PNG,GIF格式.

注意:这个模块依赖于开源的libgd库,在安装前确保操作系统已经安装了libgd

--with-http_geoip_module

安装http geoip module 该模块可以依据MaxMaind GeoIP的IP地址数据库对客户端的IP地址得到实际的地理位置信息.

注意:该库依赖于MaxMind GeoIP的库文件,可以访问下载地址获取

--with-http_sub_moduel

安装http sub module 该模块可以在Nginx返回客户端的HTTP响应包中将指定的字符串替换为自己需要的字符串

例如:在HTML的返回中.将</head>替换为</head><script language='JavaScript' src='$script'></script>

--with-http_dav_module 安装 http dav module 这个模块可以让Nginx支持WebDav标准,如支持Webdav协议中的PUT,DELETE,COPY,MOVE,MKCOL等请求
--with-http_mp4_module

安装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 sceure index module 该模块提供一种验证请求是否有效的机制,

例如:它会验证URL中需要加入的token参数是否属于特定的客户端发来的.以及检查时间戳是否过期.

--with-http_degradation_module 安装http degradation module 该模块针对一些特殊的系统调用(如 sbrk) 做一些优化, 如直接返回HTTP响应码为204 或 444  目前不支持Linux系统
--with-http_stub_status_module 安装http stub status module 该模块可以让运行中的Nginx提供性能统计页面,获取相关的并发连接.请求的信息
--with-google_perftools_module 安装google perftools module 该模块提供google的性能测试工具
   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章