
nginx
文章平均质量分 80
nginx教程
Eisen戴
如果明知结局,何不给自己最后的骄傲,何不给过去最好的结局.
展开
-
Nginx(二十) 获取真实客户端IP
为使 Nginx 后端的上游服务器可以获得真实客户端 IP,Nginx 提供了 ngx_http_realip_module 模块用以实现真实客户端 IP 的获取及传递的功能。通过该模块提供的配置指令,用户可以手动设置上层反向代理服务器的 IP 作为授信 IP,Nginx 服务器根据配置指令的配置排除授信 IP,而甄别出真实的客户端 IP 进行日志记录,并传递给上游服务器。模块配置指令如下表所示。默认会以最后一个 IP 为真实客户端 IP,当指令值为 on 时,会以最后一个非信 IP 为真实客户端 IP。原创 2024-01-07 23:00:12 · 930 阅读 · 0 评论 -
Nginx(十九) range请求-断点续传/多线程下载
在 Nginx 缓存默认配置下,Nginx 处理完一个大文件的初始请求后,后续的用户请求必须等待整个文件下载结束并存入缓存后才可以继续被处理,整个过程非常耗时。为解决这个问题,Nginx 提供了 ngx_http_slice_module 模块,用以缓存范围请求的支持。该模块将文件分成更小的切片(slices),客户端每个范围请求覆盖特定的切片,如果该范围没有缓存,则从源服务器请求后存入缓存,否则就从缓存中返回数据。http_slice 模块配置指令如下表所示。原创 2024-01-07 22:54:26 · 2447 阅读 · 0 评论 -
Nginx(十八) 性能调优
如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间默认是用HTTP/1.0协议通信的。如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间默认是用HTTP/1.0协议通信的。同时,我们后端的nginx上没有设置gzip_http_version为1.0,那么Cache的url将不会进行gzip压缩。Nginx三大优势,动静分离、反向代理、负载均衡。14、开启多线程下载、断点续传。原创 2024-01-04 23:11:57 · 1746 阅读 · 0 评论 -
Nginx(十七) 日志轮询/切割
Logrotate 是 CentOS 操作系统的内置日志管理工具,基于 anacrontab 实现计划任务,通过配置 logrotate,可以按照每天、周、月或达到某一大小的日志文件进行归档操作,并允许对日志文件实行压缩、删除或邮寄等操作。说明文件格式不支持,因为windows系统的文件格式是dos,而linux系统是unix,所以需要将文件格式从dos修改为unix。执行完该命令后,并不会实际执行文件备份,只是用来检查配置文件是否正确,如有有错,会提示error,按照错误提示修改配置文件即可。原创 2024-01-04 23:06:31 · 1102 阅读 · 0 评论 -
Nginx(十六) 配置文件详解 - server stream服务流
本篇文章主要讲 ngx_stream_core_module 模块下各指令的使用方法,Nginx默认未配置该模块,需要用“--with-stream”配置参数重新编译Nginx。udp:指定一个用于处理数据包的监听套接字(1.9.13)。为了在同一会话中处理来自同一地址和端口的数据包,还应指定 reuseport 参数。设置服务器接受连接的套接字address和port。指定读取代理协议头的超时时间。为指定流服务器的指令提供配置文件上下文。指定预读取阶段的超时时间。指定预读取缓冲区的大小。原创 2024-01-02 22:30:23 · 2404 阅读 · 0 评论 -
Nginx(十五) proxy_pass和proxy_redirect指令的组合测试
测试1:proxy_redirect http://127.0.0.1:8080/three/ http://www.read*******l.cn:8688/four/;测试1:proxy_redirect http://127.0.0.1:8080/three/ http://www.read*******l.cn:8688/four/;客户端发送请求:http://www.read*******l.cn:8688/one/hello。原创 2024-01-02 00:50:44 · 1589 阅读 · 0 评论 -
Nginx(十三) 配置文件详解 - 反向代理(超详细)
默认设置是60秒,但并不是说非要等60秒后才反馈连接建立失败,因为Nginx与后端代理服务器建立连接时,也是通过TCP协议建立的连接,那么就会受内核参数net.ipv4.tcp_syn_retries的影响,如果我们把syn_retries的次数配置的较小(默认配置是5次,大约相当于180秒),Nginx重传SYN报文的次数达到上限并等待完成后,有可能总耗时都不到60秒,此时照样会反馈连接建立失败。设置是否开启代理缓存锁。临时文件的最大大小由 proxy_max_temp_file_size 指令设置。原创 2023-12-29 01:15:08 · 2775 阅读 · 0 评论 -
Nginx(十四) 配置文件详解 - 负载均衡(超详细)
客户端一旦发送了请求头中带有 "Authorization"字段且对应值以 "Negotiate(协商)"或 "NTLM(NTLM)"开头的请求,那么该上游服务器就会与客户端进行连接绑定。正常情况下,尚未绑定到特定服务器的客户端请求传递给由配置的负载均衡方法选择的服务器,而带有此 cookie 的其他请求将被传递到指定的服务器。需要特别注意的是,该指令并不限制nginx工作进程可以与上游服务器建立连接的总数,但connections参数应设置得足够小,以便上游服务器也能处理新建立的连接请求。原创 2023-12-29 01:15:41 · 1150 阅读 · 0 评论 -
Nginx(八) try_files 指令测试
测试1:try_files原创 2023-12-04 23:16:44 · 398 阅读 · 0 评论 -
Nginx(十二) gzip & gzip_static & sendfile & directio & aio 组合使用测试(2)
是否调用aio跟aio和directio的配置相关,跟gzip配置无关。.js文件大小大于gzip_min_length设定值400kb,满足gzip条件,文件可被压缩,而且文件大小还大于directio设定值1m,所以Nginx最终通过aio+directio的方式将文件返回给客户端。index.js文件大小小于gzip_min_length设定值400kb,不满足gzip条件,文件不进行压缩,而且文件大小小于directio设定值1m,所以Nginx最终调用sendfile将文件返回给客户端。原创 2023-11-30 18:07:00 · 290 阅读 · 0 评论 -
Nginx(十) aio & sendfile & directio 组合使用测试(2)
【代码】Nginx(九) aio & sendfile & directio 组合使用测试(2)原创 2023-11-26 15:29:50 · 261 阅读 · 0 评论 -
Nginx(九) aio & sendfile & directio 组合使用测试(1)
测试4:开启aio、directio=2m,关闭sendfile,请求/vendor1.js。测试3:开启aio、directio=2m,关闭sendfile,请求/vendor.js。测试6:开启aio、directio=2m、sendfile,请求/vendor1.js。测试5:开启aio、directio=2m、sendfile,请求/vendor.js。测试2:开启aio,关闭directio、sendfile,请求/vendor.js。原创 2023-11-26 15:29:14 · 459 阅读 · 0 评论 -
Nginx(十一) gzip & gzip_static & sendfile & directio & aio 组合使用测试(1)
跟踪nginx工作进程的系统调用情况发现内核仅执行了read、write,未执行文件压缩,且读取的还是压缩文件,但未调用sendfile(),也为采用directio。,gzip_ratio = 3.15,文件被压缩了,跟踪nginx工作进程的系统调用情况发现内核也执行了文件压缩,但未调用sendfile(),也未采用directio。,gzip_ratio = 0,文件未被压缩,内核没有进行文件压缩,仅执行read(字节流读取)、write,且未调用sendfile(),未采用directio。原创 2023-11-25 23:34:21 · 204 阅读 · 0 评论 -
Nginx(七) root和alias的区别及详细测试
pages/one/本篇文章只讲root和alias的区别,配置文件详解请参考,下面开始进行测试。原创 2023-11-19 17:41:28 · 452 阅读 · 0 评论 -
Nginx(六) Nginx location 匹配顺序及优先级深究(亲测有效)
如果匹配过程能进入第6步,说明请求URI前缀与location uri匹配是最好的结果了,最终的结果记录也就是最佳答案。2.如果请求URI部分前缀或全部与location uri匹配,先记录下来(如有匹配长度更长的则覆盖记录),继续向下匹配,再看看是否还有最佳答案。本篇文章主要是探讨Nginx location的匹配顺序,依照惯例,我们还是先贴结论再看测试结果。,直到找到与"^~"匹配长度最长的那个选项后再停止匹配(如果实在找不到其它的,就只能拿这个凑合了)最后,我们根据上面的匹配顺序对各种匹配规则的。原创 2023-11-18 23:00:29 · 3459 阅读 · 0 评论 -
Nginx(五) break,if,return,rewrite和set指令的执行顺序深究
本篇文章主要对break,if,return,rewrite和set这5个指令的执行顺序进行深究,如需了解这5个指令的功能和配置,请参考另一篇文章。原创 2023-11-15 20:25:24 · 1687 阅读 · 0 评论 -
Nginx(四) absolute_redirect、server_name_in_redirect、port_in_redirect 请求重定向指令组合测试
本篇文章主要用来测试absolute_redirect、server_name_in_redirect和port_in_redirect三个指令对Nginx请求重定向的影响,Nginx配置详解请参考另一篇文章Nginx(三) 配置文件详解接下来,在Chrome无痕模式下进行测试。测试1:absolute_redirect=on; server_name_in_redirect off; port_in_redirect on; #默认配置absolute_原创 2023-11-17 00:00:48 · 1307 阅读 · 0 评论 -
Nginx(三) 配置文件详解 - 基础模块(超详细)
声明:写这篇博文一是为了加深自己对Nginx 的配置理解,二是为了方便粉丝们工作需要。部分配置我也没有使用过,用过的配置我都会在下面贴入测试结果,未使用过的配置可能会解释错误,如有错误希望大家及时留言,以后还会根据自己对Nginx的理解不断更新这部分内容。本来想在一篇文章中介绍完所有配置用法,但写着写着发现文章篇幅越来越长,码字时都开始卡顿了,电脑不行吖,所以只能拆分开来写。本篇文章仅介绍Nginx的基本配置用法,proxy、upstream和其它指令我们再专门写博文介绍。原创 2023-11-04 22:22:59 · 1440 阅读 · 1 评论 -
Nginx(二) 重新编译并添加模块
作用:一是检查所需模块是否已安装,二是将configure arguments: 后面的参数复制出来并保存,因为等会重新编译时还需将这些模块一同添加进去。原创 2023-11-05 22:43:38 · 2301 阅读 · 0 评论 -
Nginx(一) 安装与配置
我这里需要添加 --with-threads --with-http_ssl_module --with-http_gzip_static_module,大家根据个人需要进行添加,如果首次安装未添加,后续还是可以重新编译的(见另一篇博文)。如果我们要指定nginx的安装路径(默认路径:/usr/local/nginx)或是需要添加相关nginx模块,在./configure 命令后需要添加相关参数,可以同时带多个参数。如果未添加全局命令,就进入安装目录的sbin目录下执行./nginx。原创 2023-11-04 01:16:59 · 686 阅读 · 0 评论