• nginx源码安装./configure常见参数详解


    参考地址

    官方参考地址  http://nginx.org/en/docs/configure.html

    其他参考地址  https://blog.csdn.net/zhangman0702/article/details/93628954 

    一  configure常用参数

    1 常规类参数

    ##nginx安装目录
    ##默认/usr/local/nginx/
    --prefix=PATH
    
    ##可执行文件路径(即nginx命令路径)
    ##默认prefix/sbin/nginx
    --sbin-path=PATH
    
    ##模块的安装目录
    ##默认prefix/modules
    --modules-path=PATH
    
    ##配置文件
    ##默认prefix/conf/nginx.conf
    --conf-path=PATH
    
    ##错误日志文件
    ##默认prefix/logs/error.log
    --error-log-path=PATH
    
    ##pid文件
    ##默认prefix/logs/nginx.pid
    --pid-path=PATH
    
    ##锁文件,NGINX运行时会自动创建该文件,一台服务器上只允许运行一个NGINX服务
    ##默认prefix/logs/nginx.lock
    --lock-path=PATH
    
    ##HTTP服务器的主请求日志文件
    ##默认prefix/logs/access.log
    --http-log-path=PATH
    
    ##用于存储包含客户端请求主体的临时文件目录
    ##默认prefix/client_body_temp
    --http-client-body-temp-path=PATHDIR
    
    ##用于存储从代理服务器接收到的数据的临时文件目录
    ##默认prefix/proxy_temp
    --http-proxy-temp-path=PATHDIR
    
    ##用于存储从FastCGI服务器接收到的数据的临时文件目录
    ##默认prefix/fastcgi_temp
    --http-fastcgi-temp-path=PATHDIR
    
    ##用于存储从uwsgi服务器接收到的数据的临时文件目录
    ##默认prefix/uwsgi_temp
    --http-uwsgi-temp-path=PATHDIR
    
    ##用于存储从SCGI服务器接收到的数据的临时文件目录
    ##默认prefix/scgi_temp
    --http-scgi-temp-path=PATHDIR
    
    ##运行nginx的用户
    ##默认nobody
    --user=USERNAME
    
    ##运行nginx的用户组
    --group=GROUPNAME
    ##添加第三方模块
    --add-module=PATHDIR

    2 依赖类参数

    ##设置gcc编译器目录
    ##一般不用设置
    --with-cc=PATHDIR
    
    ##设置gcc-c++编译器目录
    ##一般不用设置
    --with-cpp=PATHDIR
    
    ##传到C编译器命令行的其他选项
    –with-cc-opt=
    
    ##传到C链接器命令行的其他选项
    –with-ld-opt=
    
    ##设置CPU型号
    ##为特定的CPU执行编译操作,有效的值:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64,ppc64。
    --with-cpu-opt=CPU
    
    ##设置pcre库
    ##只供源码安装的pcre使用
    --with-pcre=PATHDIR
    
    ##设置MD5库
    ##只供源码安装的MD5使用
    –with-md5=PATHDIR
    
    ##设置zlib库
    ##只供源码安装的zlib使用
    --with-zlib=PATHDIR
    
    ##设置OpenSSL库
    ##只供源码安装的OpenSSL使用
    --with-openssl=PATHDIR

    3 默认禁用模块参数的启用

    3.1  默认禁用模块参数之常规参数的启用

    ##启用select事件驱动模型
    ##默认情况下在Linux2.6以上的内核版本中,Nginx支持使用Epoll高效的事件模型,可在配置文件中使用"use epoll"开启
    --with-select_module
    
    ##启用poll事件驱动模型
    ##默认情况下在Linux2.6以上的内核版本中,Nginx支持使用Epoll高效的事件模型,可在配置文件中使用"use epoll"开启
    --with-poll_module 
    
    ##启用线程池功能
    ##一般情况下主机有几核处理器在启动Nginx时就会创建几个Worker工作进程
    --with-threads
    
    ##启用异步文件I/O支持
    ##一般用于大文件传输的场景下
    ##可能会报错,请谨慎使用
    --with-filr-aio
    
    ##启用动态模块兼容性
    --with-compat

    3.2 默认禁用模块参数之stream相关参数的启用

    ##启用Stream_Core模块,nginx的核心模块
    ##用于实现TCP/UDP代理和四层负载均衡
    ##默认不启用,nginx1.9.0版本开始使用
    --with-stream
    
    ##启用Stream_SSL模块
    ##提供SSL/TLS协议支持
    ##默认不启用,需要安装OpenSSL依赖,需要启用--with-stream模块
    --with-stream_ssl_module
    
    ##启用Stream_Realip模块
    ##用于修改客户端请求头中的客户端IP值,一般用于反向代理中,将真实的客户端IP传送给后端的应用服务器
    ##默认不启用,需要启用--with-stream模块
    --with-stream_realip_module

    3.3 默认禁用模块参数之HTTP相关参数的启用

    ##启用HTTPS模块
    ##用于构建HTTPS服务
    ##默认未启用,需要安装OpenSSL依赖
    --with-http_ssl_module
    
    ##启用HTTP_V2模块
    ##新HTTP协议,比HTTP1好
    ##默认未启用
    --with-http_v2_module
    
    ##启用HTTP_Realip模块
    ##用于修改请求头中客户端IP值,将真实的客户端IP传送给后端客户端
    ##默认未启用
    --with-http_realip_module
    
    ##启用HTTP_Addition模块
    ##用于在响应之后和之前添加文本
    ##默认未启用
    --with-http_addition_module
    
    ##启用HTTP_Xslt模块
    ##过滤器,通过一个或多个XSLT样式表转换XML响应
    ##也可使用动态模块即--with-http_geoip_module=dynamic
    ##默认未启用,需要安装libxml2和libxslt依赖
    --with-http_xslt_module
    
    ##启用HTTP_Image_Filter模块
    ##集成图片处理器,可以转换JPEG,GIF,PNG和WebP格式的图像
    ##也可以使用动态模块即--with-http_image_filter_module=dynamic
    ##默认未启用
    --with-http_image_filter_module
    
    ##启用HTTP_Geoip模块
    ##根据客户端IP地址得到其所在国家,处理来自不同地区的访问
    ##也可使用动态模块即--with-http_geoip_module=dynamic
    ##默认未启用,需要安装MaxMind GeoIP依赖
    --with-http_geoip_module
    
    ##启用HTTP_Sub模块
    ##用于修改响应内容,将一个指定的字符串替换为另一个指定的字符串
    ##默认未启用
    --with-http_sub_module
    
    ##启用HTTP_DAV模块
    ##通过WebDAV协议提供文件管理自动化,类似WEB文件管理器,对服务器文件进行管理
    ##默认未启用
    --with-http_dav_module
    
    ##启用HTTP_FLV模块
    ##为Flash Video(FLV)文件提供伪流服务器端支持,允许在网页上播放FLV格式的视频
    ##默认未启用
    --with-http_flv_module
    
    ##启用HTTP_MP4模块
    ##为MP4文件提供伪流服务器端支持,允许在网页上播放MP4格式的视频
    ##默认未启用
    --with-http_mp4_module
    ##启用HTTP_Gunzip模块
    ##用于为不支持"gzip"编码方式的客户端解压响应,服务器会本地解压数据,将数据传送给浏览器客户端
    ##默认未启用
    --with-http_gunzip_module
    
    ##启用HTTP_Gzip_Static模块
    ##用于将静态内容压缩成".gz"为扩展名的预压缩文件,缓存在本地并在响应时发送
    ##默认未启用
    --with-http_gzip_static_module
    
    ##启用HTTP_Auth_Request模块
    ##请求验证,基于子请求的结果实现客户端授权,若子请求返回的状态码为200,则允许访问,若返回401或403,则拒绝访问
    ##默认未启用
    --with-http_auth_request_module
    
    ##启用HTTP_Random_Index模块
    ##处理以斜杠(' /')结尾的请求,从目录中选择一个随机文件作为索引文件
    ##默认未启用
    --with-http_random_index_module
    
    ##启用HTTP_Secure_Link模块
    ##防盗链模块,用于检查请求链接的权限以及是否过期,多用于文件下载防盗链
    ##默认未启用
    --with-http_secure_link_module
    
    ##启用HTTP_Degradation模块
    ##用于当主机剩余内存较低时,用户请求访问时Nginx会对某些"location"的请求返回204或444的响应码
    ##默认未启用
    --with-http_degradation_module
    
    ##启用HTTP_Slice模块
    ##将请求拆分为子请求,每个子请求返回一定范围的响应
    ##默认未启用
    --with-http_slice_module
    
    ##启用HTTP_Stub_Status模块
    ##提供对基本状态信息的访问,管理员访问这个页面可以获取基本信息,一般用于监控nginx的运行状态
    ##默认未启用
    --with-http_stub_status_module

    3.4 默认禁用模块参数之Mail相关参数的启用

    ##启用POP3/IMAP4/SMTP邮件代理服务器
    ##也可以使用动态模块即 --with-mail=dynamic
    ##默认不启用
    --with-mail
    
    ##启用Mail_SSL模块
    ##设置邮件代理服务器支持SSL/TLS协议
    ##默认不启用,需要安装OpenSSL依赖
    --with-mail_ssl_module
     
    4 默认启用模块参数的禁用
    4.1 默认启用模块参数之stream相关参数的禁用
    ##禁用Stream_Limit_Conn模块
    ##用于Nginx四层负载功能中限制并发连接数量以及下载带宽限制功能
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_limit_conn_module
    
    ##禁用Stream_Access模块
    ##用于Nginx四层负载功能中限制对某些客户端地址的访问
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_access_module
    
    ##禁用Stream_Geo模块
    ##用于Nginx四层负载功能中从指定变量中获取客户端的IP地址,并将其嵌入到另外一个变量中
    ##默认情况下从"$remote_addr"变量中取得客户端的IP地址
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_geo_module
    
    ##禁用Stream_Map模块
    ##用于Nginx四层负载功能中创建变量,但创建的变量的值取决于其他变量的值
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_map_module
    
    ##禁用Stream_Splic_Clients模块
    ##用于Nginx四层负载功能中创建适用于A/B测试的变量
    ##当开启Stream_Core模块时自动开启此功能。
    --without-stream_split_clients_module
    
    ##禁用Stream_Return模块
    ##用于Nginx四层负载功能中向客户端发送指定值,然后关闭连接
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_return_module
     
    ##禁用Stream_Upstream_Hash模块
    ##提供四层负载均衡的一种调度方法,一般用于基于SessionID的会话保持场景下
    ##当开启Stream_Core模块时自动开启此功能,不建议禁用
    --without-stream_upstream_hash_module
    
    ##禁用Stream_Upstream_IP_Hash模块
    ##提供四层负载均衡的一种调度方法,基于来源IP的会话保持方法,不过它是基于客户端IP的Hash方法,客户端可能受动态IP影响会发生变化
    ##一般很少采用
    ##当开启Stream_Core模块时自动开启此功能。
    --without-stream_upstream_least_conn_module 
    
    ##禁用Stream_Upstream_Zone模块
    ##用于Nginx四层负载功能,可以将由"Upstream"指令定义的服务器组运行时的状态存储在共享内存区域中
    ##当开启Stream_Core模块时自动开启此功能
    --without-stream_upstream_zone_module

    4.2 默认启用模块参数之HTTP相关参数的禁用

    ##禁用HTTP_Core模块
    ##为Nginx的核心模块,用于提供HTTP服务所有核心功能
    ##不建议禁用
    --without-http
    
    ##禁用HTTP缓存
    --without-http-cache
    
    ##禁用HTTP_Charset模块
    ##用于将指定的字符集添加到"Content-Type"响应头字段中,以及将数据从一个字符集转换为另一个字符集
    ##用于字符集设置,不建议禁用
    --without-http_charset_module
    
    ##禁用HTTP_Gzip模块
    ##此模块用于HTTP响应内容传输压缩,可以将响应内存在传输时将其压缩成Gzip编码格式的响应传送给客户端
    ##使用Gzip编码格式响应内容体积会变小,会提高传输效率,不建议禁用
    --without-http_gzip_module
    
    ##禁用HTTP_SSI模块
    ##过滤器,用于处理通过它响应中的SSI(Server Side Includes)命令
    --without-http_ssi_module
    
    ##禁用HTTP_Userid模块
    ##用于设置适用于客户端标识的Cookie
    --without-http_userid_module
    
    ##禁用HTTP_Access模块
    ##用于限制对某些客户端地址的访问,Allow or Deny
    ##不建议禁用
    --without-http_access_module
    
    ##禁用HTTP_Auth_Basic模块
    ##用于HTTP基本身份验证,使用用户名和密码来限制对资源的访问
    --without-http_auth_basic_module
    
    ##禁用HTTP_Mirror模块
    ##用于将正式环境的流量拷贝到镜像(测试)环境下,一般用于测试环境引入真实环境的流量实现对测试环境的压力测试
    --without-http_mirror_module
    
    ##禁用HTTP_Autoindex模块
    ##用于在处理以斜杠字符('/')结尾的请求,并在找不到索引文件的情况下生成目录列表
    --without-http_autoindex_module
    
    ##禁用HTTP_Geo模块
    ##用于从指定变量中获取客户端的IP地址,并将其嵌入到另外一个变量中
    --without-http_geo_module
    
    ##禁用HTTP_Map模块
    ##用于创建变量,但创建的变量的值取决于其他变量的值
    --without-http_map_module
    
    ##禁用HTTP_Splic_Clients模块
    ##用于创建适用于A/B测试的变量
    ##AB测试也称之为拆分测试:将一个项目的两个不同版本发布,用户喜欢哪个版本就发布哪个版本
    --without-http_split_clients_module
    
    ##禁用HTTP_Referer模块
    ##用于防盗链,用于阻止对请求头部"referer"字段具有无效值的请求访问
    --without-http_referer_module
    
    ##禁用HTTP_Rewerte模块
    ##用于地址重写,用于将来源请求地址重定向到指定的地址上,可以保护真实的地址,增加安全性
    ##需要安装pcre依赖,不建议禁用
    --without-http_rewrite_module
    
    ##禁用HTTP_Proxy模块
    ##用于将请求代理传递到另外一台WEB服务器去处理
    ##Nginx的核心模块,不建议禁用
    --without-http_proxy_module
    
    ##禁用HTTP_FastCGI模块
    ##用于将请求代理传递到另外一台FastCGI服务器去处理,一般用于反代PHP
    ##不建议禁用
    --without-http_fastcgi_module
    
    ##禁用HTTP_UwSGI模块
    ##用于将请求代理传递给另外一台UwSGI服务器去处理
    --without-http_uwsgi_module
    
    ##禁用HTTP_SCGI模块
    ##用于将请求代理传递给另外一台SCGI服务器去处理
    --without-http_scgi_module
    
    ##禁用HTTP_Grpc模块
    ##用于将请求代理传递给另外一台Grpc服务器去处理
    --without-http_grpc_module
    
    ##用HTTP_Memcached模块
    ##用于Nginx从Memcached服务器获取响应内容
    ##一般用于Nginx+后端服务器+Memcached的环境下
    ##Memcached缓存服务器是基于内存的所以可以减少磁盘IO的使用,提高响应效率
    --without-http_memcached_module
    
    ##禁用HTTP_Limit_Conn模块
    ##用于限制并发连接数量以及下载带宽限制
    --without-http_limit_conn_module
    
    ##禁用HTTP_Limit_Req模块
    ##用于限制请求数量,可以限制请求的频率
    --without-http_limit_req_module
    
    ##禁用HTTP_Empty_Gif模块
    ##会在内容中常驻的一个1X1的透明空白的GIF图像,当用户请求时,返回该图像,一般用于测试
    --without-http_empty_gif_module
    
    ##禁用HTTP_Browser模块
    ##用于创建变量,变量的值取决于请求头中"user-agent"的值
    ##一般用于区别新式或者旧式浏览器
    --without-http_browser_module
    
    ##禁用HTTP_Upstream_Hash模块
    ##提供了由"Upstream"指令定义的一组服务器的负载均衡方法"Hash"
    ##会话保持
    ##不建议禁用
    --without-http_upstream_hash_module
    
    ##禁用HTTP_Upstream_IP_Hash模块
    ##提供了由"Upstream"指令定义的一组服务器的负载均衡方法"ip_hash"
    ##用于会话保持,不过它是基于客户端IP的Hash方法,客户端可能受动态IP影响会发生变化
    ##一般不建议采用
    --without-http_upstream_ip_hash_module
    
    ##禁用HTTP_Upstream_Least_Conn模块
    ##提供了由"Upstream"指令定义的一组服务器的负载均衡方法"least_conn"
    ##用于将请求传递到具有最少活动连接、权重较高(性能最好)的后端服务器上去处理。
    --without-http_upstream_least_conn_module
    
    ##禁用HTTP_Upstream_Keepalive模块
    ##可以为由"Upstream"指令定义的一组服务器提供保持长连接的功能
    ##使用它则会为每个Worker工作进程与后端服务器保持空闲的长连接,连接数由"keepalive"指令指定
    ##当空闲的长连接数量超过指定值时,将关闭最近最少使用的连接
    --without-http_upstream_keepalive_module
    
    ##用HTTP_Upstream_Zone模块
    ##可以将由"Upstream"指令定义的服务器组运行时的状态存储在共享内存区域中
    --without-http_upstream_zone_module

    4.3 默认启用模块参数之Mail相关参数的禁用

    ##禁用Mail_POP3模块
    ##当启用HTTP_Mail_Core模块时,若不想使用POP3协议,则可以考虑单独禁用此模块
    ##不建议禁用
    --without-mail_pop3_module
     
    ##禁用Mail_IMAP模块
    ##当启用HTTP_Mail_Core模块时,若你不想使用IMAP4协议,则可以考虑单独禁用此模块
    ##不建议禁用
    --without-mail_imap_module
     
    ##禁用Mail_SMTP模块
    ##当启用HTTP_Mail_Core模块时,若你不想使用SMTP协议,则可以考虑单独禁用此模块
    ##不建议禁用
    --without-mail_smtp_module

    二  配置示例

    ./configure
    --prefix=/etc/nginx
    --sbin-path=/usr/sbin/nginx
    --modules-path=/usr/lib/nginx/modules
    --conf-path=/etc/nginx/nginx.conf
    --error-log-path=/var/log/nginx/error.log
    --http-log-path=/var/log/nginx/access.log
    --pid-path=/var/run/nginx.pid
    --lock-path=/var/run/nginx.lock
    --http-client-body-temp-path=/var/cache/nginx/client_temp
    --http-proxy-temp-path=/var/cache/nginx/proxy_temp
    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
    --http-scgi-temp-path=/var/cache/nginx/scgi_temp
    --user=nginx
    --group=nginx
    --with-compat
    --with-threads
    --with-http_addition_module
    --with-http_auth_request_module
    --with-http_dav_module
    --with-http_flv_module
    --with-http_gunzip_module
    --with-http_gzip_static_module
    --with-http_mp4_module
    --with-http_random_index_module
    --with-http_realip_module
    --with-http_secure_link_module
    --with-http_slice_module
    --with-http_ssl_module
    --with-http_stub_status_module
    --with-http_sub_module
    --with-http_v2_module
    --with-mail
    --with-mail_ssl_module
    --with-stream
    --with-stream_realip_module
    --with-stream_ssl_module
    --with-stream_ssl_preread_module

  • 相关阅读:
    JAVA 对象的创建与克隆
    流言粉碎机:JAVA使用 try catch 会严重影响性能
    MYSQL TIMESTAMP自动更新问题
    Innodb之索引与算法
    中缀表达式转后缀表达式并计算结果
    json数组对象和对象数组
    记一个react 使用jQuery 的规则
    docker nginx (13: Permission denied) while reading upstream
    vuecliservice electron:serve Critical dependency: the request of a dependency is an expression
    AntDesign upload 多图可拖拽排序 Demo
  • 原文地址:https://www.cnblogs.com/gudanaimei/p/13065926.html
Copyright © 2020-2023  润新知