化虹为桥 - Nginx 如何代理 UDP “连接”

2023-01-29
阅读 7 分钟
4.6k
众所周知,UDP 并不像 TCP 那样是基于连接的。但有些时候,我们需要往一个固定的地址发送多个 UDP 来完成一个 UDP 请求。为了保证服务端能够知道这几个 UDP 包构成同一个会话,我们需要在发送 UDP 包时绑定某个端口,这样当网络栈通过五元组(协议、客户端IP、客户端端口、服务端IP、服务端端口)进行区分时,那几个 UDP...

把 Go 放到 Nginx C module 之中

2022-11-27
阅读 3 分钟
4.2k
最近一段时间,我在做一件有趣的事情,让一个 Nginx C module 通过 Go 代码来访问 gRPC 服务。不得不感慨 Go 真的很流行,让人无法拒绝。之前我做 wasm-nginx-module 时就试图把 tinygo 跑在 Nginx 里面,这次则是把正宗的 Go 跑在 Nginx 里面。这就是无法回避的命运吗?!

丢失的$remote_port

2020-01-29
阅读 2 分钟
6.3k
最近做日志采集的时候发现,部分 Nginx access log 里面的 $remote_port 字段为空。$remote_port 字段提供的是客户端发起连接时使用的端口地址。理论上,如果请求是通过 unix socket 来的,没有端口自然不足为奇。不过我们的请求都是走 TCP 过来的,没有端口便是一件奇事。

Nginx 是如何让你的缓存延期的

2018-12-18
阅读 2 分钟
4.1k
当 Nginx 使用 proxy cache 的文件作为响应时,它会更新其中的一些内容,比如 Date 响应头;但大部分响应头都不会得到更新,比如 Expires 和 Cache-Control。众所周知,Cache-Control 可以通过 max-age=xxx 或者 s-maxage=xxx 指令设置缓存的有效时间。跟 Expires 响应头不同,这一时间是相对的。假设上游服务器返回 Cac...

你可能不需要使用Nginx Amplify

2016-09-26
阅读 3 分钟
6k
对于 Nginx Amplify 不了解的同学,可以搜索一下,在 Nginx 官网上有介绍。简单来说,就是你可以在服务器上安装一个开源的 Python 写的 Agent。这个 Agent 会上传你的 Nginx 实例各种运行时数据到 Nginx.inc 的(闭源)SAAS平台上。通过这个 SAAS 平台,Nginx.inc 可以替你提供诸如配置检查和优化、监控、报警等功能。