首页 > TAG信息列表 > ngx
nginx ngx_http_degradation_module 模块
ngx_http_degradation_module 是一个不错的nginx 模块,但是官方文档没有写,主要的场景 是在低内存的情形下允许Nginx服务器返回444错误或204错误 参考使用 http { degradation sbrk=500m; // main 级别的 server { location /some { degrade 204; // locanginx ngx_http_addition_module 模块openresty content_by_lua 不能生效的原因
nginx 的ngx_http_addition_module 模块也是一个修改content 的好东西,对于openresty 我们经常使用content_by_lua 阶段处理 但是经过分析ngx_http_addition_module 源码的处理机制,他是基于body_fiter 处理的,所以我们基于content_by_lua 进行数据处理 会有顺序不对的问题 参考源Nginx隐藏响应头信息的Server信息和版本信息
问题如下 解决办法 隐藏nginx版本信息 nginx/conf/nginx.conf http { ... server_tokens off ... } 隐藏server信息 实现方案:需要重新编译nginx 进入解压出来的nginx源码目录(不是nginx的安装目录) vim src/http/ngx_http_header_filter_module.c # 49-50行nginx-1.22.0添加ngx_http_sticky_misc模块编译报错
报错:/root/nginx-goodies-nginx-sticky-module/ngx_http_sticky_misc.c:176:15 sed -i '12a #include <openssl/sha.h>' /root/nginx-sticky-1.2.5/ngx_http_sticky_misc.csed -i '12a #include <openssl/md5.h>' /root/nginx-sticky-1.2Sword nginx slab源码解析一
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_SLAB_H_INCLUDED_ #define _NGX_SLAB_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef struct ngx_slab_page_s ngx_slab_page_t; struct ngx_slab_记一次openresty协程返回结果错乱排查
记一次openresty协程返回结果错乱排查 现场 在我普通的日常开发中,我写了一段普通查redis的代码,上线以后马上有报错,nginx errorlog如下 ERROR : "xxx/redis.lua:175: bad argument #1 to 'byte' (string expected, got boolean)" "POST xxx HTTP/1.1" 然后马上看了下产生报错的代H5 IONIC 3国际化配置
开发规范: 1、多语言目前均采用的中文,防止某些系统异常,即可默认显示中文 2、html中书写规范 2.1 文本标签 <ion-label> {{'开始时间' | translate}} </ion-label> 2.2 组件 <ion-input type="text" [placeholder]="'请输入会议名称(必填)' | translate" class="fontcentos 离线安装 nginx
=============================================== 2022/7/17_第1次修改 ccb_warlock =============================================== 由于我在centos上部署nginx多数是采取docker运行或有互联网的服务器进行部署,但是本周临Pod
目录Yaml操作 Yaml apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: ngx tier: frontend spec: containers: - name: ngx-container image: nginx 操作 kubectl apply -f pod.yaml kubectl describe pod my-pod -n default -o wide kubecNginx反向代理设置黑名单
Nginx反向代理设置黑名单 作为架构师,你必须掌握 openresty Openresty设置访问黑名单 1、简单设置nginx配置文件 (py36env) [root@www conf]# ll nginx.conf 配置新的location location /bklist { access_by_lNginx高并发(三万字长文)
Nginx高并发编程 转载请声明!!!切勿剽窃他人成果。本文如有错误欢迎指正,感激不尽。 参考资料:Spring Cloud、Nginx高并发核心编程尼恩编著、以及菜鸟教程等互联网资源 所有例子均是本人亲自上机后,将代码或结果复制回来的。 一、Nginx/OpenResty详解 1.1 Nginx简介 Nginx有以下3个主lua中table中null的表示方法以及判断redis返回null
今天遇到一个麻烦的问题,查询redis时候,查到数据的时候正常返回,查询不到数据时,返回了null,然而在lua中,常见的nil,但不常见null,这时候lua中对redis返回的null如何做判断呢?于是各种尝试。这是经过公司基础库封装的结果,并非官方的返回,redis返回结果如下: {"retmsg":"","result":null,"retnginx源码层面探究request_time、upstream_response_time、upstream_connect_time与upstream_header_time指标具体含义
背景概述 最近计划着重分析一下线上各api的HTTP响应耗时情况,检查是否有接口平均耗时、99分位耗时等相关指标过大的情况,了解到nginx统计请求耗时有四个指标:request_time、upstream_response_time、upstream_connect_time与upstream_header_time,在查找资料的过程中,发现无论是nginx官Nginx 模块开发
一、在了解Nginx模块开发前,首先得知道在Nginx中http初始化流程、11个状态机、http请求具体流程。 (1)conf文件加载 对conf文件内容进行初始化,在命令行执行nginx -c ./conf/nginx.conf的之后,开始解析conf文件,启动http模块(入口:ngx_http_block)。 (2)状态机初始化 ngx_http_init_pNginx: ngx_http_v2_module
Module ngx_http_v2_module (nginx.org)《深入理解ngx》—— 基础模块
1. configure 添加模块 1.1 添加一个 http 模块 在./src/test下创建config 内容如下 # 定义模块名称 1 ngx_addon_name=ngx_http_test_module # 向http类添加 新模块 2 HTTP_MODULES="$HTTP_MODULES ngx_http_test_module" # 添加源文件 3 NGX_ADDON_SRCS="$NGXnginx ngx_http_realip 的功能以及使用
网上关于ngx_http_realip 使用介绍的基本都是一个老生长谈的问题了,对于多级代理配置的这个就是一个常用的解决用户真实ip的方法,以下是使用 的一个简单说明 ngx_http_realip 简单说明 ngx_http_realip 是一个获取用户请求真实ip 的一个模块,可以在多代理链路场景下解决我们获取真实Nginx: ngx_http_map_module
ngx_http_map_module Module ngx_http_map_module (nginx.org) map $http_host $name { hostnames; default 0; ~map\.intrinsic.\w+ 1; *.canto.com 2; aa.intrinsic.io 3; bngx——共享内存
0. 简介 共享内存是ngx实现 进程间 全局对象 的方法, 比如 一个抗cc模块,需要记录 cc数据,但 进程间内存隔离,导致 工作进程 只能记录访问自己的 cc数据, 所以需要申请一个共享内存,在共享内存上构造cc数据,多个工作进程互斥操作 该对象。 1 ngx_shm_zone_t 25 typedef struct ngx_shm_zngx-lua实现高级限流方式一
基于POST请求体中的某个参数限流 背景 电商平台有活动,活动涉及优惠券的抢券,优惠券系统对大并发支持略差,为了保护整体系统平稳,因此在入口Nginx层对抢券接口做了一层限流。 完整实现如下: lua_shared_dict my_limit_req_store 100m; server { listen 80; server_name test.aLua 调用正则函数
1、先来个官方的ngx.re.match location /ngx_re_match { default_type text/html; content_by_lua_block { local m, err = ngx.re.match("/live/4001493201083.m3u8", "[0-9]+") if m then -- m[0] == "4001493201083"openresty 提供的几个新的生命周期阶段指令
实际上这几个指令很早就有了,只是最近在重新学习openresty 的时候发现的 exit_worker_by_lua_* 在每次nginx worker 进程退出的时候执行,当master 进行禁用的时候,这个钩子会在nginx 进程退出之前执行主要的场景是进行资源释放,以及worker 非正常退出 server_rewrite_by_lua_* 在serve使用TypeScriptToLua+openresty-lua-types+docker-compose nginx resty.ipmatcher 集成使用
还是基于现有的扩展开发的,主要是尝试下 主要内容 包含类型定义以及,安装扩展使用 环境准备 详细介绍可以参考 https://www.cnblogs.com/rongfengliang/p/16210941.html 类型定义 resty-ipmatcher.d.ts declare module "resty.ipmatcher" { interface IpMatcher {ngx——内存池管理
1. 有哪些内存池 init_cycle.pool : 用于初始化时使用,初始化后一定被释放 196 main(int argc, char *const *argv) 253 init_cycle.pool = ngx_create_pool(1024, log); 292 cycle = ngx_init_cycle(&init_cycle); cycle->pool : 伴随整个工作周期,直到 重新加载可重入函数与信号安全函数
1. 从 不可重入 到 可重入 可重入指,函数被并发调用。 若函数写 全局变量,则不可重入,改为 堆分配,则可重入。 2. 从 可重入 到 信号安全 信号安全指,函数A执行途中,处理信号,信号处理函数中 又调用 函数A。 若函数使用 全局变量,则信号不安全。若改为 堆分配,也不安全,因为 malloc使用了锁,