
23 nginx
文章平均质量分 84
nginx related
教练、我想打篮球
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
15 nginx 中默认的 proxy_buffering 导致基于 http 的流式响应存在 buffer, 以 4kb 一批次返回
这也是最近碰到的一个问题直连 流式 http 服务, 发现 流式响应正常, 0.1 秒接收到一个响应但是 经过 nginx 代理一层之后, 就发现了 类似于缓冲的效果, 1秒接收到 10个响应最终 调试 发现是 nginx 的 proxy_buffering 配置引起的然后 更新 proxy_buffering 为 off 解决了这个问题这里 主要是 来调试一下 这个 proxy_buffering 的影响。原创 2025-04-18 08:18:41 · 762 阅读 · 0 评论 -
14 nginx 的 dns 缓存的流程
ngx_http_upstream.ngx_peer_connection_t 的数据来自于这里的 ngx_http_upstream.ngx_peer_connection_t.data 数据类型是 ngx_http_upstream_rr_peer_data_t。这里会过的比较快, 大体的意思是 nginx 这边解析配置文件的时候 创建了对应的配置数据结构, 初始化的时候就进行了 dns 解析, 然后 后面的业务请求这边使用的是 这套配置。原创 2025-04-11 20:22:19 · 1056 阅读 · 0 评论 -
13 nginx try_files 的实现
这个是之前 项目中使用到了 nginx 的 try_files 来获取静态资源文件然后 当时的配置 貌似是存在一定的问题吧然后 这里来看一下 try_files 的相关实现。原创 2025-04-06 06:22:41 · 472 阅读 · 0 评论 -
12 nginx + springboot 上传文件超过大小限制
这是一个 上传文件的相关的问题前端页面通过 nginx 部署上传文件到 nginx, 然后 nginx 转发给相应的后端服务, 然后 后端这边做具体的业务处理这里涉及到 nginx 的最大客户端请求的配置, 后台服务这边 最大上传文件的配置然后 后端这边, 主要是对应于 servlet 的相关的配置这个限制处理是在 ngx_http_core_module 中处理的因为我们这里没有配置 client_max_body_size, 然后这里 使用的默认值 1*1024*1024。原创 2025-03-29 07:40:36 · 719 阅读 · 0 评论 -
11 关于 nginx: [emerg] host not found in upstream “cdn.optimizely.com“ in nginx.con
呵呵 这是最近帮助同事 搭建 pageplug 的时候碰到的一个问题, 当时 我觉得还蛮奇怪, 为什么启动服务 需要去验证访问 cdn.optimizely.com?然后 需要花点时间 看一下这个问题, 稍微梳理一下然后 也发现了 自己理解的的一些问题, 这里并没有去 验证访问 cdn.optimizely.com, 只是尝试去解析 cdn.optimizely.com 的地址信息, 没有获取到 然后 nginx 报错了而已。原创 2025-03-21 09:00:05 · 371 阅读 · 0 评论 -
10 nginx 中的 slab
这里主要是描述 nginx 中的 slab 内存分配相关slab 在很多的地方都有使用, 比如 linux, nginx, netty 等等主要的作用是 内存管理, 复用。原创 2022-09-17 09:53:38 · 741 阅读 · 0 评论 -
09 nginx 中 upstream max_conns 配置为 1, 导致的一部分静态资源请求成功, 一部分静态资源请求失败
呵呵 这是之前搭建一个项目的时候出现的问题主要的情况是 一个 nginx, 代理了上游的服务, 设置的 max_conns 为 1, 然后 之后 nginx 来请求上游的服务的时候 一部分请求成功, 一部分请求失败这里 我们来从 源码层面上 剖析一下这个问题, 以及 max_conns 的理解。原创 2022-09-17 09:53:20 · 1166 阅读 · 0 评论 -
08 nginx 的一次请求处理调试
呵呵 这里来看一下 nginx 是如何处理一次请求的这里 会有两个 case, 一个是 代理请求 upstream 的, 一个是请求 nginx 所在服务器的静态资源监听端口, 处理请求的是 worker process以下截图, 调试基于 nginx-1.18.0。原创 2022-09-17 09:52:03 · 677 阅读 · 0 评论 -
07 nginx 的 worker process 的调试
呵呵 之前 ngx 的调试, 都是基于 gdb, 这个 能够全局看到的上下文太繁琐了因此 之前思考 如何使用 clion/其他IDE 调试 worker process呵呵 有一些思考的地方, 有一些 尝试的地方, 有一些 失败的地方, 有一些 成功的地方此处梳理一下, 主要的目的是 调试 worker process 子进程还有一个 tricks 是, 调试的时候最好修改 优化级别为 O0, 否则 会有一部分变量被优化到寄存器, 导致 gdb/其他调试器 的时候查看不到对应的数据。原创 2022-09-17 09:51:43 · 1063 阅读 · 0 评论 -
06 nginx 处理转发其他域的处理 以及 proxy_redirect
中描述了如果 上游服务 sendRedirect 到所在域的其他服务之后, 来到 nginx 这一层, nginx 会将这个转发的服务更新为 nginx 所在的域那么 假设上游服务 sendRedirect 到其他域的服务呢?另外 就是在 探究这个问题的时候, 使用了一下 proxy_redirect, 这个 proxy_redirect 又是如何处理的呢?以下截图, 调试基于 nginx-1.18.0。原创 2022-09-17 09:52:22 · 2442 阅读 · 0 评论 -
05 proxy_pass 携带有 uri 的场景下面的处理
这里主要是关注 proxy_pass 的配置, 对于 代理都上游服务的请求的相关处理的实现差异比如 如下配置是否存在什么差异, 造成的结果是什么现在假设存在一个上游服务上面的配置是可以正常代理的, 但是 下面的配置响应的是 404本文探讨的就是类似的问题以下截图, 调试基于 nginx-1.18.0。原创 2022-09-17 09:51:24 · 510 阅读 · 0 评论 -
04 访问 /staticTryFiles 或者 /staticTryFiles/ 的一些具体行为体现
之前曾经做过一个测试, 测试结果如下然后 后面更加详细的测试了一下, 梳理了一下 结论以下截图, 调试基于 nginx-1.18.0。原创 2022-09-12 10:09:36 · 353 阅读 · 0 评论 -
03 nginx 是如何自动推导文件的 content-type 的
nginx 可以作为一个 静态资源服务器我们暴露一个 nginx 服务然后 从浏览器访问 存储的文件, 图片, 视频, html 等等, nginx 可以正确的 设置 Content-Type 给客户端使用客户端 识别到了 图片, 自动加载图片, 识别到了 html, 自动渲染 html识别到了 其他二进制文件, 自动下载文件 等等我们这里 就来看一下 nginx 是如何响应 Content-Type 的以下截图, 调试基于 nginx-1.18.0。原创 2022-09-03 10:34:43 · 1584 阅读 · 0 评论 -
02 nginx 中几种 location 表达式的优先级问题
呵呵 这是一个 老生常谈的问题从官方文档, 或者 各种博客 中都可以找到这个问题的相关描述我们这里 只关注 location 上面的这五种写法, 不关注 location @name可以看到的是 存在五种写法从下面文档也可以看出 优先级大概是 精确匹配 > 前缀匹配2 > 正则匹配, 忽略大小写正则匹配 > 前缀匹配1我们这里 核心关注的就是 这个顺序是如何实现的?以下截图, 调试基于 nginx-1.18.0。...原创 2022-08-29 20:26:58 · 3377 阅读 · 0 评论 -
01 容器端口映射导致 302 存在问题 以及 nginx 对于 302 的 Location 的重写
最近出现了一个这样的问题我启动了一个 nginx 的一个 docker 容器然后 容器的端口为 80, 映射到宿主机 81 端口后端服务有一个 sendRedirect("/xxx"), 然后 客户端这边 拿到的端口是 80然后 导致客户端 访问不到, 本文的一些 知识是 衍生自这个问题302 转发相关的流程从前端页面 到 nginx, 转发了一个请求 "/api/HelloWorld/sendRedirect"原创 2022-08-21 09:06:21 · 4658 阅读 · 0 评论