欢迎光临
我们一直在努力

Nginx

Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布[6]。2011年成立同名公司以提供支持[7]。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购[8]。 Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx[9],通常作为负载均衡器。[10]

NGINX系列之事件模型

admin阅读(22)评论(0)赞(0)

nginx在完成进程的创建后,主进程进入信号处理的循环中,不参与事件处理;worker进程则进入事件处理过程。nginx任何操作,包括定时任务、连接、读写等都可以定义为事件,事件具有的特点是被动特性,即发生才处理,避免因为轮训状态而导致的时...

NGINX系列之ngx_connection

admin阅读(19)评论(0)赞(0)

上文介绍nginx事件模型,当用户发起请求时候,为便于对连接进行管理,服务端将用户的请求封装为一种数据结构ngx_connection_t,从而方便维护客户端各种请求信息以及连接生命周期的管理。 数据结构 struct ngx_connec...

NGINX系列之HTTP模块开发

admin阅读(17)评论(0)赞(0)

上文介绍nginx请求11个阶段处理,本文将动手实操开发并注册一个HTTP模块,在实现ngx_http_hello_world_module 模块的过程中,详细介绍其实现步骤。 模块组成介绍 模块定义 模块名称 ngx_http_hello...

NGINX系列之内存池-IT技术资讯

NGINX系列之内存池

admin阅读(16)评论(0)赞(0)

Nginx内存池 ngx_pool_t Nginx作为高性能到web服务器,自然需要满足高效的内存使用率和分配效率。 内存池满足上述两个要求,主要优点: 统一内存管理,避免内存碎片化,提高系统到使用率(Nginx做内存对齐处理,牺牲一定到使...

NGINX系列之HTTP阶段分析

admin阅读(21)评论(0)赞(0)

读取完请求头后,nginx进入请求的处理阶段。简单的情况下,客户端发送过的统一资源定位符(url)对应服务器上某一路径上的资源,web服务器需要做的仅仅是将url映射到本地文件系统的路径,然后读取相应文件并返回给客户端。但这仅仅是最初的互联...

NGINX系列之配置文件

admin阅读(17)评论(0)赞(0)

nginx是一款高性能的服务器,其核心配置可配置,存储在nginx.conf文件中,本文简要介绍各参数的含义。 ######Nginx配置文件nginx.conf##### #nginx运行的用户名和用户组 user root root; ...

NGINX系列之进程模型-IT技术资讯

NGINX系列之进程模型

admin阅读(16)评论(0)赞(0)

在web服务中,随着用户基数增长,技术演进的趋势是提高系统的并发性和稳定性,一种方式是通过扩展机器的个数实现负载均衡,通过多台机器的量变引起质变,提高系统的并发性,显然这种方式资源利用率较低,成本较高;第二种方式则是演进web服务系统架构,...

NGINX系列之MAIN函数

admin阅读(16)评论(0)赞(0)

核心数据结构 全局变量cycle数据结构 ngx_cycle_s 变量是nginx中贯穿始终的全局变量,其存储在系统运行过程中的所有信息,包括配置文件信息、模块信息、客户端连接、读写事件处理函数等信息。其结构如下所示: struct ngx...

解Bug之路-Nginx 502 Bad Gateway-IT技术资讯

解Bug之路-Nginx 502 Bad Gateway

admin阅读(2113)评论(0)赞(3)

前言 事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源...

NGINX 中文日志十六进制编码问题

admin阅读(1808)评论(0)赞(6)

Nginx访问日志在处理中文时,默认使用16进制编码处理。使我们对访问日志进行分析处理时,带来很大不便。含有中文字符的请求,日志记录如下: 171.43.238.62 - - [05/Dec/2017:21:40:57 +0800] "GE...

nginx模块之split_clients

admin阅读(1305)评论(0)赞(2)

split_clients模块默认已经编译进Nginx , 通过–without-http_split_clients_module 禁用。 功能: 1、基于已有变量创建新变量,可为实现AB测试提供更多的可能性。 2、对已有变量的值执行Mu...

Nginx之tcp_nodelay-IT技术资讯

Nginx之tcp_nodelay

admin阅读(1830)评论(0)赞(5)

一、知识准备 ● 在nginx优化中有个经常需要设置的参数,tcp_nodelay ● 该参数最核心的功能,就是把小包组成成大包,提高带宽利用率也就是著名的nagle算法 ● tcp协议中,有一个现象:应用层数据可能很低(比如1个字节),而...

nginx请求行读取流程

admin阅读(1518)评论(0)赞(7)

在读取数据完成之后,nginx会将读取事件的回调方法设置为ngx_http_process_request_line(),这个方法主要有如下几个作用: 读取客户端请求的数据,如果客户端数据读取不全,则继续监听客户端读事件以读取完整数据; 解...

Nginx 与 Lua 的执行顺序和步骤说明

admin阅读(2228)评论(0)赞(7)

一、Nginx执行步骤 Nginx处理每一个用户请求时,都是按照若干个不同阶段(phase)依次处理的,而不是根据配置文件上的顺序。 Nginx处理请求的过程一共划分为11个阶段,按照执行顺序依次是post-read、server-rewr...

由动态修改ssl protocols引发的问题

admin阅读(2598)评论(0)赞(1)

概述 最近我一直在做动态加载的事情,希望把常用的变更都通过lua动态设置并生效到nginx内核中。 这就包括了根据SNI动态修改tls的版本和加密套件,因为理论上在SSL的client hello后才进行版本的协商,在SNI回调函数修改ss...

因业务逻辑太重导致nginx延迟读引发的问题

admin阅读(1438)评论(0)赞(2)

概述: 在nginx做一些请求内容过滤的操作。当用户上传一个大文件时,偶然会有上传失败的情况,当关闭内容过滤时问题不再发生。 初步定位是和文件过滤有关系,在测试环境模拟了很多次都无法复现。 问题追踪 在生产环境抓包,上传失败是因为nginx...

一文搞定 Nginx 限流配置-IT技术资讯

一文搞定 Nginx 限流配置

admin阅读(1293)评论(0)赞(0)

限流算法 令牌桶算法 算法思想是: 令牌以固定速率产生,并缓存到令牌桶中; 令牌桶放满时,多余的令牌被丢弃; 请求要消耗等比例的令牌才能被处理; 令牌不够时,请求被缓存。 漏桶算法 算法思想是: 水(请求)从上方倒入水桶,从水桶下方流出(被...

Nginx缓存之缓存静态内容

admin阅读(1260)评论(0)赞(3)

NGINX虽然已经对静态内容做过优化。 但在高流量网站的情况下,仍然可以使用open_file_cache进一步提高性能。 NGINX缓存将最近使用的文件描述符和相关元数据(如修改时间,大小等)存储在缓存中。 缓存不会存储所请求文件的内容。...

Nginx网络吞吐量之buffers优化

admin阅读(2091)评论(0)赞(2)

请求缓冲区在NGINX请求处理中起着重要作用。 在接收到请求时,NGINX将其写入这些缓冲区。 这些缓冲区中的数据可作为NGINX变量使用,例如$request_body。 如果缓冲区与请求大小相比较小,则数据将写入磁盘上的文件,因此将涉及...

Nginx配置性能优化之I/O和TCP配置

admin阅读(1429)评论(0)赞(0)

Sendfile 当应用程序传输文件时,内核首先缓冲数据,然后将数据发送到应用程序缓冲区。 应用程序反过来将数据发送到目的地。 Sendfile方法是一种改进的数据传输方法,其中数据在操作系统内核空间内的文件描述符之间复制,而不将数据传输到...

Nginx 的 TCP 负载均衡介绍-IT技术资讯

Nginx 的 TCP 负载均衡介绍

admin阅读(1494)评论(0)赞(3)

Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。 HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网络层...

nginx 1.19.0 主线版发布-IT技术资讯

nginx 1.19.0 主线版发布

admin阅读(1241)评论(0)赞(4)

nginx 1.19.0 主线版已发布,更新内容如下: Feature: 使用 OCSP 进行客户端证书验证 Bugfix: 修复与 gRPC 后端搭配使用时,可能出现的”upstream sent frame for clos...

记一次LVS/Nginx环境下的访问控制-IT技术资讯

记一次LVS/Nginx环境下的访问控制

admin阅读(1136)评论(0)赞(2)

偶然间,我发现 Graphite 显示服务器网卡流量呈锯齿状,于是查了一下 Nginx 日志,发现有人在周期性抓我们的接口数据。我这爆脾气自然不能容忍这种行径。   简单分析一下访问日志,很容易就能拿到了可疑的 IP 段,直接用 ...

Nginx带宽控制

admin阅读(1131)评论(0)赞(0)

有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能。   好消息是 Nginx 提供了 limit_...