摘要:不同于其他语言,go语言通过request.Host字段来指定主机域名,而不是headers里面"Host"。在Nginx中,server_name对应http请求中的Host。 docker run --network host -d nginx:1.23 # 修改配置文件 vim /etc/ng
阅读全文
摘要:当容器化部署Tengine时,worker数量默认是cpu数量。 https://tengine.taobao.org/document_cn/core_cn.html 对应/etc/nginx/nginx.conf数量配置是4。 容器中cpu数量是节点cpu数量,Nginx不需要这么多worker
阅读全文
摘要:前提 已安装完成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
阅读全文
摘要:调试lua脚本ngx.log(ngx.ERR, "xxx")日志会打印到/usr/local/nginx/logs/error.log 修改返回值时避免内容被截断 增加header_filter_by_lua 'ngx.header.content_length = nil';注释后只返回原接口长度
阅读全文
摘要:问题1:value has been optimized out值已优化 执行完configure之后,在nginx源码路径objs下生成Makefile文件。修改auto/make增加COPT = -O0 -funroll-loops,表示不优化
阅读全文
摘要:把Nginx改成非守护进程方式运行daemon off; printf打印格式size_t本质类型是long unsigned int,printf使用%ld。
阅读全文
摘要:1. 在服务提供方式上,基于事件模型异步方式来提供服务。2. 在连接处理机制上,通过异步非阻塞方式来减少工作进程在I/O调用上的阻塞延迟,使用I/O多路复用来实现高性能监听套接口。3. 使用内存池批量申请内存和回收内存,减少内存碎片。
阅读全文
摘要:安装mingw64 C/C++编译器GCC的Windows版本https://sourceforge.net/projects/mingw/从官网下载后勾选勾选全部后关闭窗口时选择review changes 设置环境变量 通过命令gcc -v检验是否设置成功。 打开代码后,打开某个c文件,选择Cr
阅读全文
摘要:Nginx热升级指服务不中断情况下用新的Nginx二进制文件替换老的Nginx二进制文件。1. 备份和替换Nginx二进制文件 git clone https://github.com/nginx/nginx.git cd nginx git checkout release-1.22.0 ./au
阅读全文
摘要:请求和后端ip地址计算hash值%2^32。 把请求转给按顺时针找到的后端IP。如果后端IP挂了,原本转给其他后端IP的请求不变。为了增强均衡性,可以增加虚拟节点。 参考资料nginx 负载均衡/一致性哈希
阅读全文
摘要:docker pull nginx:1.22.1 docker run -itd nginx:1.22.1 进入nginx容器 apt-get update apt-get install -y vim
阅读全文
摘要:select和poll:进程把所有自己连接的套接字传给内核(用户态到内核态的内存拷贝),内核寻找这些连接上没有处理的事件。select和poll最多只能处理上千个并发连接。 epoll1.调用epoll_create来创建1个epoll对象2.调用epoll_ctl来向epoll对象添加、修改或者删
阅读全文
摘要:gdb attach [worker进程号] 在指定文件的898行打上断点b src/event/modules/ngx_epoll_module.c:898 客户端发送请求 按3次c以后,按n(函数单行执行)和s(函数逐行执行)单步调试 确定函数调用过程 上一步调用函数代码 下一步被调函数位置 r
阅读全文
摘要:epoll监控的事件src/event/modules/ngx_epoll_module.c EPOLLIN: 连接上有数据可读(包括TCP连接的远端主动关闭连接)EPOLLLPRI:连接上要读紧急数据EPOLLOUT: 连接上写入数据并发送(包括向上游服务器发起TCP连接建立成功)EPOLLERR
阅读全文
摘要: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++)
阅读全文
摘要:请求不能在指定时间内完成时触发Nginx的超时机制。定时器由红黑树实现,红黑树中最左边的节点代表最有可能的超时事件。 timer_resolution Nginx提供2种超时检测方案:1. 设置定时器,每过固定间隔时间进行超时检测扫描,缺点是超时事件可能得不到及时处理。2. 等待当前时间与最有可能的
阅读全文
摘要:Nginx源码版本是1.22.1 error.log函数:ngx_log_error_core 对应日志前半部分 对应日志后半部分 输出日志时打印文件名和行号 效果
阅读全文
摘要:安装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
阅读全文
摘要:拉取镜像并运行 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
阅读全文