首页 > 系统相关 >nginx编译参数和配置参数笔记

nginx编译参数和配置参数笔记

时间:2024-08-30 14:07:49浏览次数:5  
标签:http 编译 -- module nginx 参数 Nginx path

编译参数:

 ./configure  --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/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-file-aio --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 --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

 

 

以下是选项的详细说明:

--prefix=/etc/nginx :指定Nginx安装的基本目录,即Nginx的根目录。但通常/etc/nginx用于存放配置文件,而非安装目录,这里可能是个特例或误用。

--sbin-path=/usr/sbin/nginx :指定Nginx可执行文件的路径。

--modules-path=/usr/lib64/nginx/modules :指定动态模块的存放路径。

--conf-path=/etc/nginx/nginx.conf :指定Nginx的主配置文件路径。

--error-log-path=/var/log/nginx/error.log :指定错误日志文件的路径。

--http-log-path=/var/log/nginx/access.log :指定访问日志文件的路径。

--pid-path=/var/run/nginx.pid :指定Nginx主进程ID文件的路径。

--lock-path=/var/run/nginx.lock :指定Nginx的锁文件路径,用于防止多个Nginx实例同时运行。

--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 :指定FastCGI的临时文件存放路径。

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp :指定了uwsgi(如果存在的话)的临时文件路径。

--http-scgi-temp-path=/var/cache/nginx/scgi_temp :指定SCGI的临时文件存放路径。

--user=nginx  :指定Nginx运行时的用户。

--group=nginx :指定Nginx运行时的组。

--with-compat :启用对旧版本API的兼容性支持。

--with-file-aio :启用文件异步I/O。

--with-threads :启用线程池支持。

--with-http_addition_module :允许Nginx在响应中添加额外的HTTP头部,或者修改现有的响应内容。

--with-http_auth_request_module :允许Nginx通过向另一个服务器发送子请求来执行身份验证。如果子请求返回特定的状态码(如200),则允许访问原始请求。

--with-http_dav_module :启用对WebDAV(基于Web的分布式创作和版本控制)协议的支持。

--with-http_flv_module :为FLV(Flash视频)文件提供伪流功能,使得FLV文件可以被当作流媒体来传输。

--with-http_gunzip_module :允许Nginx在发送响应给客户端之前,自动解压缩gzip压缩的响应。

--with-http_gzip_static_module :如果请求的文件以.gz结尾,并且对应的非.gz文件存在,则Nginx会尝试直接发送.gz文件作为响应,而不是解压缩后再发送。

--with-http_mp4_module :为MP4文件提供伪流功能,类似于http_flv_module,但针对MP4视频。

--with-http_random_index_module :当请求一个目录时,随机选择一个文件作为目录的索引。

--with-http_realip_module :允许Nginx从请求头部(如X-Forwarded-For)中获取客户端的真实IP地址,并设置$remote_addr变量和$http_x_forwarded_for变量。

--with-http_secure_link_module :实现一个安全链接模块,该模块可以基于MD5散列值和过期时间检查链接的安全性。

--with-http_slice_module :允许Nginx将一个大文件分割成多个较小的部分(切片),并允许客户端单独请求这些部分。

--with-http_ssl_module :启用SSL支持,使得Nginx能够处理HTTPS请求。

--with-http_stub_status_module :提供一个状态页面,显示Nginx的各种状态信息,如活动连接数、接收和发送的数据量等。

--with-http_sub_module :允许Nginx在响应内容中查找并替换文本。

--with-http_v2_module :启用对HTTP/2协议的支持,HTTP/2是一种优化版的HTTP协议,旨在提高网络性能。

--with-mail :启用邮件代理模块

--with-mail_ssl_module :启用邮件代理模块的SSL支持。

--with-stream :这个选项启用了Nginx的TCP/UDP代理模块(也称为stream模块)。默认情况下,Nginx主要作为HTTP和HTTPS的代理服务器。但是,通过启用stream模块,Nginx可以代理TCP和UDP流量,使其能够作为邮件代理(SMTP/POP3/IMAP)、TCP负载均衡器或任何基于TCP/UDP的应用程序的代理。

--with-stream_realip_module :这个模块允许Nginx在处理stream(TCP/UDP)流量时,从请求头部(如X-Forwarded-For)中获取客户端的真实IP地址,并设置$remote_addr变量。这对于在Nginx后面使用反向代理或负载均衡器时获取真实的客户端IP地址非常有用。

--with-stream_ssl_module :这个模块为Nginx的stream模块添加了SSL/TLS支持。通过启用此模块,Nginx可以处理加密的TCP连接,如HTTPS(尽管HTTPS通常通过HTTP模块处理,但也可以用于其他基于TCP的加密协议)。这使得Nginx能够作为SSL/TLS终止点,解密传入的加密流量,并将其转发到后端的非加密服务。

--with-stream_ssl_preread_module  :这个模块提供了在SSL握手阶段读取客户端信息(如客户端证书或SNI)的能力,而无需完全解密和解析SSL/TLS数据包的内容。这对于需要根据客户端的SSL/TLS信息(如SNI,即服务器名称指示)来路由或重定向流量的场景特别有用。例如,您可以使用此模块来根据客户端请求的SSL证书或SNI将流量路由到不同的后端服务器。

--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' :指定C编译器的优化选项,包括优化等级、调试信息、管道优化、Wall警告、安全特性等。

--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie':指定链接器的选项,增强安全性,如位置无关代码(PIE)和重定位只读段(RELRO)。

 

配置参数:

nginx的stream模块配置举例:

 

stream {  

    # 定义TCP上游服务器组  

    upstream tcp_80 {  

        server 192.102.205.10:1080 weight=3;  

        server 192.102.201.59:1080 weight=2;  

    }  

 # 使用limit_conn_zone(注意:这要求Nginx版本支持stream模块的连接限制)  

 # 注意:stream模块中的limit_conn_zone和limit_conn的使用可能与HTTP模块有所不同  

 # 这里假设您的Nginx版本支持在stream模块中使用这些指令  

 # (实际上,直到Nginx 1.15.9,stream模块中的连接限制还是实验性的)  

    limit_conn_zone $binary_remote_addr zone=limitbyservers:10m;  

    server {  

     listen 80;   

       # 应用连接限制(假设Nginx版本支持)  

        limit_conn limitbyservers 1000; # 这里可能需要根据实际情况调整限制数  

         # TCP代理设置  

         proxy_connect_timeout 10s;  

         proxy_timeout 5m;  

         proxy_pass tcp_80;  

         # 错误日志  

        error_log logs/test.log;  

     }  

 }

  

limit_conn_zone $binary_remote_addr zone=limitbyservers:10m; 这行指令的各个参数意义如下:

$binary_remote_addr:这是一个变量,表示客户端的IP地址。在Nginx中,$remote_addr 变量通常用于获取客户端的IP地址,但在定义限制区域时,使用 $binary_remote_addr 可以更高效地存储IP地址(因为它以二进制形式存储,占用的内存更少)。

zone=limitbyservers:这是为这个限制区域指定的名称,即 limitbyservers。在Nginx配置中,这个名称用于在后续的 limit_conn 指令中引用这个限制区域。

10m:这指定了为这个限制区域分配的内存大小,这里是10MB。Nginx使用这个内存来存储每个客户端的会话状态信息,以便跟踪和限制连接数。内存大小应该根据预期的并发连接数和每个会话状态所需的空间来设置。如果设置的内存太小,Nginx可能会因为内存不足而拒绝新的连接。

 

标签:http,编译,--,module,nginx,参数,Nginx,path
From: https://www.cnblogs.com/risheng777/p/18388637

相关文章

  • webapi 获取参数值的几种方式
    [FromRoute(Name="名字")],捕捉的值会被自动赋值给Action中同名的参数;如果名字不一致,可以用[FromRoute(Name="名字")][FromQuery]来获取QueryString中的值。如果名字一致,只要为参数添加[FromQuery]即可;而如果名字不一致,[FromQuery(Name=名字)][FromForm]从Content-Type为mult......
  • TPS562210ADDFR开关稳压器芯片中文资料PDF数据手册引脚图参数
    TPS562210A的说明TPS562210A和TPS563210A是采用8引脚SOT-23封装的简单易用型2A/3A同步降压转换器。两款器件均经过优化,最大限度地减少了运行所需的外部组件并且可以实现低待机电流。这些开关模式电源(SMPS)器件采用D-CAP2™模式控制,从而提供快速瞬态响应,并且......
  • TPS62000DGS电源管理芯片中文资料PDF数据手册引脚图产品参数特性
    TPS62000的说明TPS6200x器件是低噪声同步降压直流/直流转换器系列非常适合由1节锂离子电池或2至3节电池供电的系统镍镉、镍氢或碱性电池。TPS6200x的典型输入电压低至1.8V。指定的最小输入电压为2V。该TPS62000可在–40°C至85°C的自由空气温度范围内工......
  • linux centos 启动 nginx 几种方式
    在CentOS上安装Nginx的方法有几种,具体取决于你的需求和系统版本。以下是几种常见的方法:1.使用EPEL仓库安装(推荐)安装EPEL仓库(如果还没有安装):sudoyuminstallepel-release安装Nginx:sudoyuminstallnginx启动Nginx:sudosystemctlstartnginx设置Nginx开机自启:sudos......
  • 【ROS教程】用CLion编译和调试ROS包的全流程及可能遇到的问题
    @目录1.工作空间目录2.加载环境变量3.打开CLion4.配置CLion5.编译和调试软件包1.工作空间目录我们的一个工作空间目录应该是这样的2.加载环境变量先进入工作空间再加载source./devel/setup.bash3.打开CLion一定要在第二步的同一个终端下clion.sh如果打不开,......
  • apache-log4cxx编译问题
    问题由于项目需要用到c++日志系统log4cxx,记录安装log4cxx库遇到的坑。环境准备系统ubuntu18.04gcc编译器7.5.0Linuxforlinx4.4.189aarch64GNU/Linux已知:log4cxx是一个依赖于apr和apr-util的C++日志库。apr是Apache提供的一个支持跨平台的运行时库。apr......
  • Nginx安装
    目录:    1.下载    2.安装需要的依赖包    3.安装Nginx    4.启动/停止    5.配置systemd方式管理NG    6.启动&停止    7.测试-------下载----------在终端中wget直接下载wgethttps://nginx.org/down......
  • Dapper传递参数对象时,只支持属性,无法解析字段(出现Parameter '?id' must be defined)
    有的时候使用Dapper执行数据操作时,我们会把模型对象直接作为参数传递进去,但是需要在注意的是!Dapper解析数据是根据属性进行解析的,如果传递的类中使用字段赋值,就会报错 Parameter'?xxx'mustbedefinedclassAAA{publicintID{get;set;}......
  • YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程
    原论文摘要引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DC......
  • YOLOv9添加DCNv4可变性卷积与RepNCSPELAN4结构融合(windows系统成功编译),全网最详细教
    前言引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相......