对刚接触Ngx_lua的读者来说,可能会存在下面两个困惑。1、Lua在Nginx的哪些阶段可以执行代码?Lua在Nginx的每个阶段可以执行哪些操作?2、只有理解了这两个问题,才能在业务中巧妙地利用Ngx_Lua来完成各项需求。Nginx的11个执行阶段,每个阶段都有自己能够执行的指令,并可以实现不同的功能。Ngx_Lua的功能大部分是基于Nginx这11个执行阶段开发和配置的,Lua代码在这些指            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2018-12-17 18:06:25
                            
                                10000+阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            上篇文章中介绍了nginx的一种waf——naxsi,其中说到Nginx的执行阶段,这篇文章接上在了解nginx的执行阶段前,先看一个例子对echo不熟悉的,可以先看文章Nginx调试必备了解下echo扩展回到上面这个例子,在server块中配置这样的location,你觉得输出是什么样子?按照正常的逻辑,输出应该是32 56,我们请求下,看下nginx处理的结果两次输出都是56,颠覆认知。这就是            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-03-16 19:34:18
                            
                                253阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在了解nginx的执行阶段前,先看一个例子对echo不熟悉的,可以先看文章Nginx调试必备了解下echo扩展回到上面这个例子,在server块中配置这样的location,你觉得输出是什么样子?按照正常的逻辑,输出应该是32 56,我们请求下,看下nginx处理的结果两次输出都是56,颠覆认知。这就是因为set和echo处在nginx不同的执行阶段,在nginx中,处在不同阶段的配置,和配置文件            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-03-10 15:23:49
                            
                                250阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            nginx将一个HTTP请求分为11个处理阶段,这样做让每个HTTP模块可以仅仅专注于完成一个独立,简单的功能。而一个请求的完整处理过程可以由多个HTTP模块共同合作完成。可以极大的提高多个模块合作的协同性,可测试性,可扩展性。换言之,nginx在处理每一个http请求,和配置文件上的顺序没有关系。post-read接受到完整的http头部后,读取请求内容阶段,nginx读取并解析完请求头之后就立            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-17 13:10:12
                            
                                25阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强OpenResty介绍 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 18:27:10
                            
                                172阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            配置nginx的单向sslNginx配置SSLNginx配置示例(单向)cp /etc/pki/ca_test/server/server.* /usr/local/nginx/conf/
{
    listen 443 ssl;
    server_name www.aminglinux.com;
    index index.html index.php;
    root /data/            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 06:37:09
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ReduceTask 工作机制和 ReduceTask 并行度 Reduce 大致分为 copy、sort、reduce 三个阶段,重点在前两个阶段。copy 阶段包含一个 eventFetcher 来获取已完成的 map 列表,由 Fetcher 线程去 copy 数据,在此过程中会启动两个 merge 线程,分别为 inMemoryMerger 和 onDiskMerger,分别将内            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-19 23:45:08
                            
                                33阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            typedef enum {
    NGX_HTTP_POST_READ_PHASE = 0,   // 接收到完整的HTTP头部后处理的阶段
    NGX_HTTP_SERVER_REWRITE_PHASE,  // URI与location匹配前,修改URI的阶段,用于重定向
    NGX_HTTP_FIND_CONFIG_PHASE,     // 根据URI寻找匹配的locati            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 13:09:03
                            
                                91阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            “ 所谓常量,就是在代码运行过程中值恒定不变的标识符,该标识符的值可以是一个常数,也可以是字符串。”在C/C++中,通常使用define宏定义或者const来定义常量,比如:#define PI 3.1415926
const int a = 5;接下来我们来总结const常量的相关用法与注意事项。01—为什么使用常量?1. 使用常量可增加程序的可读性。程序员应该都有这种经历:看别人的代            
                
         
            
            
            
            nginx和lvs一、nginx1.优点2.ngx_lua3.Nginx线程模型二、lvs1.优点2.IPVS3.内核layer-7交换机三、lvs和nginx的配合使用 一、nginx1.优点nginx作为一个强大的WEB服务器软件,有着高性能、高并发性和低内存占用的特点,拥有着强大的反向代理功能。使用nginx的配置文件简单、成本低廉、支持Rewrite重写、内置有健康检查功能、节省带宽且稳            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-18 21:06:15
                            
                                52阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是。
高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面。这里需要强调:同一个人浏览你网站同一个页面,不重复计算pv量,点100次也算1次。说白了,pv就是一个访问者打开了你的几个页面。
IP访问数指独立IP访问数,计算是以一个独立的IP在一个计算时段内访问网站计算为1次IP访问数。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-18 10:50:33
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            接着上回的博客,回顾一下http模块执行的11个阶段,我们继续下面的内容。precontent阶段 : 按序访问资源的try_files模块功能:依次试图访问多个url对应的文件(由root或者alias指定),当文件存在时直接返回文件内容,如果所有文件夹都不存在,按照最后一个url或者code返回。location / {
       try_files $uri $uri/ /inde            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 02:17:13
                            
                                44阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 理解 Android APT 和 AGP 执行的阶段
在 Android 开发中,APT(Annotation Processing Tool)和 AGP(Android Gradle Plugin)是两个重要的概念。APT 是用于注解处理的工具,而 AGP 是 Gradle 构建系统在 Android 项目中的应用。
我们需要深入理解 APT 和 AGP 的执行阶段。本文将通过一个流程图            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-01 05:23:53
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Nginx的stream模块提供了TCP负载均衡的功能,最初的stream模块比较简单,在nginx-1.11.4后也开始采用类似HTTP模块中分阶段处理请求的方式。stream模块的处理阶段在ngx_stream.h中定义了stream模块的7个阶段。如下面所示typedef enum {
    NGX_STREAM_POST_ACCEPT_PHASE = 0,
    NGX_STREAM            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-11 11:34:19
                            
                                64阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             
11.执行阶段: 运行时内存模型
一个普通的C程序经过预处理器、编译器、汇编器和链接器后生成一个可执行的目标文件,它由最初的一段ASCII文本文件转化成为一个二进制文件,且这个二进制文件包含加载程序到内存并运行它所需的所有信息。
 C运行时内存模型
进程在运行时为C程序提供了一个通用的运行时存储器映像。    
 
Linux将这个运行时存储器映像组织成若干段的集合,它主要有两部分:进程虚            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-17 11:33:40
                            
                                324阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            问题
如果表 T 中没有字段 k,而你执行了这个语句 select * from T where k=1, 那肯定是会报“不存在这个列”的错误: “Unknown column ‘k’ in ‘where clause’”。你觉得这个错误是在我们上面提到的哪个阶段报出来的呢?
分析
优化器会进行优化分析,比如用先执行哪个条件
参考答案
分析器            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-04 14:51:43
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言 处理HTTP请求的11个阶段前面分析了nginx如何读取一个HTTP请求、如何查询到HTTP对应的配置,本节分析如何处理HTTP请求。nginx将处理HTTP请求划分为了11个阶段,原因在于nginx是一个重度模块化的系统,划分为不同阶段以后,不同的模块可以根据自己的需求在相应的模块中添加自己的处理函数。简单看看这11个模块的定义:typedef enum {
// 在接收到完整的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 15:12:05
                            
                                196阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              本文主要介绍在原有nginx基础上安装Lua模块(lua-nginx-module),及安装OpenResty其他组件(以限流模块 lua-resty-limit-traffic 为例)的详细操作,并在此基础上介绍第三方Lua lib(以cjson为例)的安装方法。如读者需要全新安装nginx,可考虑使用OpenResty的组合安装包一次性完成安装,详见:http://openresty.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-13 08:59:35
                            
                                78阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 说明前面学习了spring AOP的简单使用以及代理的一些知识,我们知道AOP的原理主要是使用了动态代理,那么它的具体执行流程又是怎样的呢?下面来使用Spring AOP的学习(一)中的demo来进行看一下。2. 分析2.1 首先我们先在环绕通知的位置打个断点,然后进行debug2.2 通过debug我们可以看出使用代理首先会走到下面的拦截器方法CglibAopProxy$DynamicAd            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-31 15:39:29
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、nginx为什么高性能epoll多路复用1.传统模型:基于缓冲区的传输 首先,假设这里有两台主机进行通信 client ----- server 当client要向server传输数据的时候:数据不会直截了当地发到server处,而是先进行一个socket.write操作,并将要发送的数据包放到缓冲区中。 如果有一个数据包要发送,这时候缓冲器被占满了,那么tcp/ip会先将缓冲区里面的数据全部            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-20 12:30:53
                            
                                87阅读