NGINX
文章平均质量分 62
zhangge3663
这个作者很懒,什么都没留下…
展开
-
openresty配置部署
环境:centosyum install -y readline-devel pcre-devel openssl-devel gccyum install -y g++ make automake autoconf./configure --prefix=/usr/local/openresty \ --with-luajit --with-http_iconv_module \ --with-http_stub_status_modulegmake ; gmake转载 2021-01-18 21:10:29 · 426 阅读 · 0 评论 -
开源API网关Kong基本介绍和安装验证
本文将介绍开源API网关Kong。在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网关,并基于Kong网关进行二次开发和定制。API网关概述简单来说API网关就是将所有的微服务提供的API接口服务能力全部汇聚起来,统一接入进行管理,也正是通过统一拦截,就可以通过网关实现对API接口的安全,日志,限流熔断等共性需求。如果再简单说下,通过网关实现了几个关键能力。...转载 2021-01-07 11:50:16 · 1059 阅读 · 0 评论 -
Nginx之共享内存与slab机制
1. 共享内存在 Nginx 里,一块完整的共享内存以结构体 ngx_shm_zone_t来封装,如下:typedef struct ngx_shm_zone_s ngx_shm_zone_t;typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *data);typedef struct { /* 执行共享内存的起始地址 */ u_char *addr; /* 共享内存的长度 *转载 2020-11-29 19:27:03 · 1049 阅读 · 0 评论 -
nginx+lua+redis 灰度发布实现方案
背景: 公司要把现有的某传统项目进行微服务化,拆分后要分批次预发布,实现某部分使用户使用微服务模块,其他用户使用传统项目。待微服务稳定、无bug后全部用户迁移至微服务系统。以上为背景,实现此方案使用nginx+lua+redis灰度发布方案。nginx+lua实现反向代理,获取客户端ip,redis存放ip信息(ip为访问微服务允许的地址).有两种方案可以实现第一种:nginx+lua获取用户ip,然后再用lua编写程序直接访问redis集群,查询ip信息返回结果;第二种:nginx+lua转载 2020-11-28 17:52:51 · 729 阅读 · 0 评论 -
nginx动态库加载出现is not binary compatible问题
Error nginx: [emerg] module "/usr/local/nginx/modules/ngx_http_vhost_traffic_status_module.so" is not binary compatible in /etc/nginx/nginx.conf:6项目中遇到此问题,原因在于不同的系统中的特性对加载动态库有影响。Your nginx binary is already installed through package system and you are转载 2020-09-23 15:14:35 · 1633 阅读 · 0 评论 -
nginx定制header返回信息模块ngx_headers_more
一、介绍ngx_headers_morengx_headers_more用于添加、设置和清除输入和输出的头信息。nginx源码中没有包含该模块,需要另行添加。该模块是ngx_http_headers_module模块的增强版,提供了更多的实用工具,比如复位或清除内置头信息,如Content-Type, Content-Length, 和Server。可以允许你使用-s选项指定HTTP状态码,使用-t选项指定内容类型,通过more_set_headers 和 more_clear_headers转载 2020-08-18 12:18:08 · 1453 阅读 · 0 评论 -
Nginx添加ngx_http_headers_module模块
今天由于公司微信端添加地图业务,但地图不支持https,所以将https改为http访问,因此出现访问异常,原因是之前访问的用户,微信端存在缓存页面,但是不会清楚,所以我就提出,可以在nginx在主机头跳转的时候做清楚缓存的操作,让微信端访问时,响应头不存储缓存,这样就解决问题了,下面是配置的过程(配置很简单,但是这个过程我花了1天的时间,如果有坑,请留言)官方文档:http://nginx.org/en/docs/http/ngx_http_headers_module.html1.查看档...转载 2020-08-18 11:14:09 · 2310 阅读 · 0 评论 -
nginx-模块内存泄露调试
在开发或使用别人模块时,偶尔会出现内存泄露的情况,这个时候在配置文件中配置worker_processer 1;daemon off;master_process off;然后使用valgrind调试:valgrind --leak-check=yes --log-file=valgrind_result_leak --trace-children=yes ./nginx然后出现如下结果:==29006== 355,213,312 bytes in 86,722 bl转载 2020-06-11 16:57:33 · 555 阅读 · 0 评论 -
nginx开启core dump文件
1.ulimit -c 102402.在/etc/profile写入ulimit -S -c unlimited > /dev/null 2>&1在/etc/sysctl.conf添加core文件生成路径kernel.core_pattern = /tmp/corefile/core.%e.%tfs.suid_dumpable=2sysctl -...转载 2020-05-08 15:40:33 · 680 阅读 · 0 评论 -
Nginx 错误10013: An attempt was made to access a socket in a way forbidden
如图 错误信息错误原因:是80端口被占用,导致nginx无法启动。解决办法1.按键盘win+r打开运行界面,输入cmd,确定,打开管理员界面2.输入netstat -aon | findstr :80 如图 我的是svn服务器占了80端口3.输入tasklist|findstr "12824"找到128...转载 2020-02-14 13:53:56 · 1113 阅读 · 0 评论 -
nginx源码分析--使用GDB调试
在学习优秀的源代码时是少不了源码的跟踪与调试,它不仅是我们解决程序bug的有效途径,也是我们理解、学习优秀源码的有效途径。本文主要介绍一些源码调试的方法,并结合Nginx源码进行示例。1,利用GDB调试 a,首先你应该熟悉GDB调试的一些基本命令(不熟悉的移步 至用GDB调试程序,熟悉step,run,break,list,info,continue等命令)。 b.下载ngi...转载 2019-10-11 10:17:24 · 325 阅读 · 0 评论 -
Nginx开启/关闭Core文件及调试
1. Nginx生成core的配置1.ulimit -a 可以查看系统core文件的大小限制(第一行),core文件大小设置为0,即没有打开core dump设置。 core file size (blocks, -c) 1024 data seg size (kbytes, -d) unlimited scheduling p...转载 2019-05-16 15:00:51 · 1926 阅读 · 0 评论 -
微服务架构---幂等机制
1背景介绍1.1 幂等性定义数学定义在数学里,幂等有两种主要的定义: 在某二元运算下,幂等元素是指自己重复运算(或对于函数是为复合)的结果等于它自己的元素。例如,乘法下唯一两个幂等实数为0和1,即s*s=s 某一元运算为幂等的时候,其作用在任一元素两次后会和其作用一次的结果相同。例如,高斯符号便是幂等的,即f(f(x))=f(x)HTTP规范定义在HTTP/1.1...转载 2019-05-09 13:33:09 · 1409 阅读 · 0 评论 -
《深入理解Nginx 模块开发与架构解析》之高级数据结构摘录
一、ngx_queue_t双向链表 1.ngx_queue_t容器的优势在于: 1) 实现了排序功能; 2) 它非常轻量级,是一个纯粹的双向链表。它不负责链表元素所占内存的分配,与Nginx封装的ngx_pool_t内存池完全无关。 3) 支持两个链表间的合并。typedef struct ngx_queue_s ngx_queue_t;stru...转载 2018-10-19 12:22:10 · 359 阅读 · 0 评论 -
Nginx——debug的使用
转载地址:https://blog.csdn.net/qq_34829953/article/details/78055448?locationNum=7&fps=1个人理解,debug的用处在于可以更进一步地了解页面访问出现问题的原因 nginx的debug的功能需要在编译安装时使用–with-debug选项./configure --prefix=/usr/local/ngi...转载 2018-11-28 14:19:44 · 1551 阅读 · 0 评论 -
nginx模块_使用gdb调试nginx源码
转载地址:https://www.cnblogs.com/yjf512/archive/2012/05/10/2494635.html工欲善其事必先利其器,如何使用调试工具一步步调试nginx是了解nginx的重要手段。熟悉gdb的使用这里就不说了,谷歌一搜一堆,这里推荐一篇文章:GDB 命令详细解释请重点看一下step,run,break,list,info,continue...转载 2018-11-28 14:45:50 · 179 阅读 · 0 评论 -
配置Nginx来支持php
转载地址:https://www.cnblogs.com/jecyhw/p/5504855.html1.安装php7 下载地址:https://secure.php.net/downloads.php 这里下载的是:wget http://ar2.php.net/distributions/php-7.0.6.tar.gz 下载之后解压并进入在解压文件中 安装: ./c...转载 2019-02-21 13:36:32 · 4852 阅读 · 0 评论 -
Nginx-Lua重定向系列
Ningx Lua 模块官方文档Nginx Lua 模块原理和函数在Nginx中实现重定向可以通过rewrite指令,具体可参考《Nginx学习——http_rewrite_module的rewrite指令》通过Lua模块也可以实现同样的功能,Lua模块提供了相关的API来实现重定向的功能,主要有:ngx.exec语法:ngx.exec(uri, args?)主要实现...转载 2019-02-26 11:28:15 · 966 阅读 · 0 评论 -
Nginx学习笔记---ngx_table_elt_t数据结构
typedef struct { ngx_uint_t hash; ngx_str_t key; ngx_str_t value; u_char *lowcase_key;} ngx_table_elt_t;ngx_table_elt_t是一个key/value对,ngx_str_t类型的key、value成员分别存储的是名字、值字符串。hash成员表明...转载 2019-04-28 10:01:45 · 999 阅读 · 0 评论 -
nginx_hash表
typedef struct { //hash元素结构 void *value; //value,即某个key对应的值,即<key,value>中的value u_short len; //name长度 u_char name[1]; //某个要hash的数据(在nginx中表现为字符串),即<key,value>中的key} ngx_...转载 2019-04-28 10:23:57 · 175 阅读 · 0 评论 -
nginx1.11.*版本追加安装sticky模块出现问题解决方法
大致出现问题都是为MD5报错找不到等等问题ngx_http_sticky_misc.c: In function [ngx_http_sticky_misc_md5] :ngx_http_sticky_misc.c:152:15: ERROR: [MD5_DIGEST_LENGTH] undeclared (first use in this function) u_char ...转载 2019-05-08 11:23:44 · 1015 阅读 · 0 评论 -
nginx会话保持值sticky模块
阅读目录1.Sticky工作原理 2.重新编译nginx增加nginx-sticky-module模块 3.sticky模块的使用 4.其他的参数:语法 5.其他需要注意的nginx会话保持之nginx-sticky-module模块在使用负载均衡的时候会遇到会话保持的问题,常用的方法有:1.ip hash,根据客户端的IP,将请求分配到不同的服务器上;2.cookie,...转载 2019-05-05 16:59:10 · 615 阅读 · 0 评论 -
微服务架构--链路追踪(Nginx篇)
阅读提示:本文不提供链路追踪的完整解决方案,只提供Nginx层对链路追踪的支持方案!1 背景介绍 微服务的诞生,解决了传统单体应用的很多问题,如可维护性差、扩展性差和灵活性差等问题(粗粒比较)。微服务架构虽好,但同时也带来了很多挑战,其中故障排查就是其需要解决的挑战之一。那么,如何在很多个应用和实例中找到故障发生的根源呢? 基于以上需求,我们可以将每一笔交易在各个应用中产生...转载 2019-05-09 11:13:57 · 2459 阅读 · 0 评论 -
《深入理解NGINX 模块开发与架构解析》之摘抄学习
1.基于Nginx框架开发程序有5个优势: (1).Nginx将网络、磁盘及定时器等异步事件的驱动都做了非常好的封装,基于它开发将可以忽略这些事件处理的细节; (2).Nginx封装了许多平台无关的接口、容器,适用于跨平台开发。 (3) 优秀的模块化设计,使得开发者可以轻易地复用各种已有的模块,其中既包括基本的读取配置、记录日志等模块,也包括处理请求的诸如HTTP.m...转载 2018-10-16 10:33:08 · 599 阅读 · 0 评论
分享