Nginx Status监控
发表于|更新于|基础运维
1 | server { |
这个时候请求,返回
1 | curl localhost:8080/nginx_status |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐
2026-09-22
Nginx使用module_vts模块来做监控
最近我们想要用 Prometheus 来监控 Nginx 的状态,所以看了一下有个 module 可以支持。项目地址在:https://github.com/vozlt/nginx-module-vts.git 重新编译 Nginx首先执行 nginx -V 查看编译参数,记录一下, 比如 然后需要 Nginx 源码包和当前安装的 Nginx 版本相同 下载 nginx_module_vts 进入 nginx 源码目录 开始编译,编译时增加一条参数 结合上面记录的编译参数,完整的编译参数是: 开始编译 然后将编译好的二进制文件替换现有的 nginx 注:nginx-module-vts 模块从 0.1.17+ 版本之后原生支持 prometheus 数据格式,可跳过 nginx-vts-exporter 的安装。 之前没安装过 nginx 的可以直接 make && make install 开启监控 监控接口为:
2026-08-26
Nginx负载均衡(反向代理)
7 层负载均衡 7 层就是用域名来进行转发 类似配置文件: vim /etc/nginx/conf.d/xxx.conf 反代到虚拟主机的另一台 Nginx比如现在有一台服务器,部署了 a、b 两个服务,比如 a.com 到 a 服务,b.com 到 b 服务,这种情况我的 Nginx 想要代理 b 服务,就需要指定反代 header proxy_set_header Host "b.com",配置如下 4 层负载 4 层负载就是类似端口转发 vim /etc/nginx.conf 最后添加: vim /etc/nginx/port_forward.conf 简单配置 复杂配置 max_fails=3 fail_timeout=30s; 这个配置的意思是:如果在 30 秒 内,对后端的请求失败了 3 次,那么接下来的 30 秒 内,Nginx 不会再向它发送任何请求,30 秒隔离期结束后,Nginx 会放一个请求过去试试水,如果这个请求 成功:服务器被重新标记为 “健康”,恢复流量转发。如果这个请求 失败:计数器归零,重新开始下一轮 30 ...
2026-09-22
使用Nginx反向代理域名
需求如下:研发代码里写死了地址 https://b.com 现在在不想发布新代码的情况下修改地址为 https://a.com 手动增加反向代理的 header先 ping a.com 获取到服务器的 ip 所以临时在 pod 里面新增了 nginx 服务,配置如下,由于是代理 https 服务,还需要配置 ssl 证书,刚好有证书。。。 优化写法nginx 提供了内置变量 $proxy_host,优化写法为: 本地绑定 hosts 测试效果这个时候两个域名访问效果一模一样了.
2026-02-21
ingress-nginx 去除指定context path
比如我想去掉 url 中的 /a 方法一、使用 Nginx 配置片段 但是这种方式需要修改 ingress nginx 开启支持 nginx 配置的功能,详情见 ingress-nginx 使用自定义的nginx配置 方法二、使用 ingress nginx 原生配置需要去除 context path 的路径,创建专门的 ingress,比如:
2025-01-09
阿里云ACK中Nginx ingress使用CLB上的Https证书
背景: 我们在客户那里部署了一套服务, 服务运行在客户提供的 ACK 集群, 我们删除了客户 ACK 自带的 nginx ingress, 通过自建的方式部署了两套 ingress, 一套绑定了公网 四层 CLB, 一套绑定了内网 四层 CLB, 也就是说是 CLB 转发到 ingress, 然后通过 ingress 转发到其他服务. 现在需要配置 Https 证书, 客户不同意我们配置证书到 ingress, 客户将证书放在了 CLB 上, 给了一个证书 ID 查询阿里云文档阿里云的文档还是很详细, 通过 google 查询到文档地址: 通过Annotation配置传统型负载均衡CLB 具体可以查看这里 HTTPS 请求会在 CLB 层解密,然后以 HTTP 请求的形式发送给后端的 Pod。 这个在腾讯云的四层负载均衡里叫 TCP SSL 监听器。 配置 LoadBalancer 类型的 Service因为我们的 CLB 是只给 ingress 使用, 所以修改 ingress 的 Service 配置 yaml: CLB 后端端口配置问题照着上面步骤配置了以后, H...
2026-09-22
Nginx Ingress 暴露没有定义Host的ingress的Metrics数据
指定默认的 ingress 后端名字有点绕口,假如说之前有个服务是通过 ip:port 来访问 nginx(就是 default server),然后转发到后端服务的,那么转换成 ingress 后,不能指定 host,不然会匹配不到规则。ingress 就不能配置 host,创建出来的 ingress 资源就是这样的: 创建出来的 ingress 资源显示: metrics 监控指标问题因为上面我们创建了一个 ingress,但是没有指定 host,在 ingress-nginx 中,没有 host 的 ingress 的 metrics 指标是不收集的,代码在此:https://github.com/kubernetes/ingress-nginx/blob/d82585917c845e598a2cd5d2c4291ce891b5e5b4/internal/ingress/metric/collectors/socket.go#L233-L235 GitHub 上有很多对应的 issues,比如:https://github.com/kubernetes/ingre...
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加博主微信,进微信运维技术交流群: