随笔分类 -  Nginx

go 基于不同Host访问不同服务
摘要:不同于其他语言,go语言通过request.Host字段来指定主机域名,而不是headers里面"Host"。在Nginx中,server_name对应http请求中的Host。 docker run --network host -d nginx:1.23 # 修改配置文件 vim /etc/ng 阅读全文

posted @ 2025-06-07 17:31 王景迁 阅读(25) 评论(0) 推荐(0)

容器化部署Tengine worker数量问题
摘要:当容器化部署Tengine时,worker数量默认是cpu数量。 https://tengine.taobao.org/document_cn/core_cn.html 对应/etc/nginx/nginx.conf数量配置是4。 容器中cpu数量是节点cpu数量,Nginx不需要这么多worker 阅读全文

posted @ 2024-05-03 20:28 王景迁 阅读(39) 评论(0) 推荐(0)

Nginx安装lua模块
摘要:前提 已安装完成Nginx 安装LuaJIT wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar -zxvf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make install PREFIX=/usr/loca 阅读全文

posted @ 2023-10-20 21:25 王景迁 阅读(511) 评论(0) 推荐(0)

Nginx Lua修改返回值
摘要:调试lua脚本ngx.log(ngx.ERR, "xxx")日志会打印到/usr/local/nginx/logs/error.log 修改返回值时避免内容被截断 增加header_filter_by_lua 'ngx.header.content_length = nil';注释后只返回原接口长度 阅读全文

posted @ 2023-10-20 21:18 王景迁 阅读(645) 评论(0) 推荐(0)

Nginx gdb调试问题
摘要:问题1:value has been optimized out值已优化 执行完configure之后,在nginx源码路径objs下生成Makefile文件。修改auto/make增加COPT = -O0 -funroll-loops,表示不优化 阅读全文

posted @ 2023-09-21 08:29 王景迁 阅读(121) 评论(0) 推荐(0)

Nginx printf打印输出到终端和打印格式
摘要:把Nginx改成非守护进程方式运行daemon off; printf打印格式size_t本质类型是long unsigned int,printf使用%ld。 阅读全文

posted @ 2023-09-21 08:26 王景迁 阅读(335) 评论(0) 推荐(0)

Nginx高性能原因
摘要:1. 在服务提供方式上,基于事件模型异步方式来提供服务。2. 在连接处理机制上,通过异步非阻塞方式来减少工作进程在I/O调用上的阻塞延迟,使用I/O多路复用来实现高性能监听套接口。3. 使用内存池批量申请内存和回收内存,减少内存碎片。 阅读全文

posted @ 2023-09-21 08:23 王景迁 阅读(89) 评论(0) 推荐(0)

Nginx代码导入CLion
摘要:安装mingw64 C/C++编译器GCC的Windows版本https://sourceforge.net/projects/mingw/从官网下载后勾选勾选全部后关闭窗口时选择review changes 设置环境变量 通过命令gcc -v检验是否设置成功。 打开代码后,打开某个c文件,选择Cr 阅读全文

posted @ 2023-07-16 14:46 王景迁 阅读(192) 评论(0) 推荐(0)

Nginx热升级
摘要:Nginx热升级指服务不中断情况下用新的Nginx二进制文件替换老的Nginx二进制文件。1. 备份和替换Nginx二进制文件 git clone https://github.com/nginx/nginx.git cd nginx git checkout release-1.22.0 ./au 阅读全文

posted @ 2023-06-23 15:55 王景迁 阅读(135) 评论(0) 推荐(0)

一致性哈希算法
摘要:请求和后端ip地址计算hash值%2^32。 把请求转给按顺时针找到的后端IP。如果后端IP挂了,原本转给其他后端IP的请求不变。为了增强均衡性,可以增加虚拟节点。 参考资料nginx 负载均衡/一致性哈希 阅读全文

posted @ 2023-06-22 18:13 王景迁 阅读(16) 评论(0) 推荐(0)

Nginx容器安装vim命令
摘要:docker pull nginx:1.22.1 docker run -itd nginx:1.22.1 进入nginx容器 apt-get update apt-get install -y vim 阅读全文

posted @ 2023-04-05 15:24 王景迁 阅读(244) 评论(0) 推荐(0)

epoll
摘要:select和poll:进程把所有自己连接的套接字传给内核(用户态到内核态的内存拷贝),内核寻找这些连接上没有处理的事件。select和poll最多只能处理上千个并发连接。 epoll1.调用epoll_create来创建1个epoll对象2.调用epoll_ctl来向epoll对象添加、修改或者删 阅读全文

posted @ 2023-02-04 11:09 王景迁 阅读(79) 评论(0) 推荐(0)

Nginx读取后端服务响应数据流程
摘要:gdb attach [worker进程号] 在指定文件的898行打上断点b src/event/modules/ngx_epoll_module.c:898 客户端发送请求 按3次c以后,按n(函数单行执行)和s(函数逐行执行)单步调试 确定函数调用过程 上一步调用函数代码 下一步被调函数位置 r 阅读全文

posted @ 2023-01-26 21:42 王景迁 阅读(307) 评论(0) 推荐(0)

Nginx同一个worker进程先后处理耗时不同的请求
摘要:epoll监控的事件src/event/modules/ngx_epoll_module.c EPOLLIN: 连接上有数据可读(包括TCP连接的远端主动关闭连接)EPOLLLPRI:连接上要读紧急数据EPOLLOUT: 连接上写入数据并发送(包括向上游服务器发起TCP连接建立成功)EPOLLERR 阅读全文

posted @ 2023-01-24 16:31 王景迁 阅读(57) 评论(0) 推荐(0)

Nginx加权轮询负载均衡
摘要:Nginx 1.22.1 默认负载均衡策略 Nginx默认采用加权轮询策略。 src/http/ngx_http_upstream.c中ngx_http_upstream_init_main_conf函数 省略 for (i = 0; i < umcf->upstreams.nelts; i++) 阅读全文

posted @ 2022-12-07 22:11 王景迁 阅读(189) 评论(0) 推荐(0)

Nginx超时检测主流程
摘要:请求不能在指定时间内完成时触发Nginx的超时机制。定时器由红黑树实现,红黑树中最左边的节点代表最有可能的超时事件。 timer_resolution Nginx提供2种超时检测方案:1. 设置定时器,每过固定间隔时间进行超时检测扫描,缺点是超时事件可能得不到及时处理。2. 等待当前时间与最有可能的 阅读全文

posted @ 2022-11-26 23:00 王景迁 阅读(492) 评论(0) 推荐(0)

Nginx在日志中输出代码文件名和行号
摘要:Nginx源码版本是1.22.1 error.log函数:ngx_log_error_core 对应日志前半部分 对应日志后半部分 输出日志时打印文件名和行号 效果 阅读全文

posted @ 2022-11-25 08:45 王景迁 阅读(231) 评论(0) 推荐(0)

Nginx源码编译并运行
摘要:安装Nginx git clone https://github.com/nginx/nginx.git cd nginx git checkout release-1.22.1 ./auto/configure 如果报错the HTTP rewrite module requires the PC 阅读全文

posted @ 2022-10-30 08:47 王景迁 阅读(125) 评论(0) 推荐(0)

Nginx代理后端Tomcat
摘要:拉取镜像并运行 docker pull nginx:1.23 docker pull tomcat:8 docker run -d nginx:1.23 docker run -d tomcat:8 修改Nginx配置 安装vim命令并备份 安装vim命令 apt update apt instal 阅读全文

posted @ 2022-10-29 19:32 王景迁 阅读(483) 评论(0) 推荐(0)

导航