Nginx Status监控
发表于|更新于|基础运维
1 | server { |
这个时候请求,返回
1 | curl localhost:8080/nginx_status |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐
2026-07-16
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-07-16
利用Nginx的rewrite来实现自动跳转
任意链接都跳转到指定页面 需要部署一个服务在 Kubernetes 内, 需要实现通过 ingress 可以访问到, 本来是很简单的事情, 但是由于访问来源的 location 不确定,为了避免报错 404,所以用 Nginx 的 rewrite 来实现 Nginx 配置如下(所有 location 转发到 index.html): 自动跳转 https配置文件如下: 使用 return 使用 rewriterewrite 性能消耗更大,但是支持更复杂的规则,只是跳转到 https 建议使用 return 301 判断 Header 直接返回内容比如备案、或者各种认证, 证明网站属于自己,通常会给一个 txt 文件让放在网站根目录,其实可以使用这种方法来实现 返回请求者 IP实现一个获取公网 ip 的小工具,类似于 curl ip.sb 可以直接在终端获得公网 ip。
2026-07-16
Nginx反向代理wordpress并启用https
反向代理 wordpress 遇到了问题,nginx 不启用 https,反向代理没问题(wordpress 和 nginx 之间走 http),但是 nginx 启用了 https,页面上的样式就没有了,f12 查看,发现 js 和 css 走的还是 http,所以 404 根本原因:wordpress 代码里没有开启 https,(wordpress 认为自己是被 http 访问的,毕竟 nginx 是通过 http 来访问它的) 修改 wordpress 配置 感觉这种方案最靠谱,谁的债谁来还。。 在 wp-config.php 的 if ( ! defined( ‘ABSPATH’ ) ) 前面添加: 如果是官方 Docker 容器的话强烈建议 Nginx 的 location /里面添加一个头: wordpress 官方 Docker 镜像会检测这个头来判断是否代码里开启 https 原因是在:wp-config.php 里面, 为了开启下面的参数 参考:https://github.com/docker-library/wordpress/...
2025-08-13
在Kubernetes集群中部署多个Nginx Ingress Controller
为什么要在集群中部署两个 Nginx Ingress Controller? 因为公司的入口目前是在一个 Ingress 上, 公网域名也解析到了这个 Ingress Controller 上面,不过有些内网的服务,我们并不想让它暴露在外,那么可以再部署一个内网使用的 Ingress Controller。 官方介绍地址:https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/ 我准备将这两个 ingressclass 放在两个 namespace 里面。 先抽出 clusterrole 和 clusterrolebinding因为可以使用一个 clusterrole,没必要每个 ingress controller 都创建 clusterrole 修改 namespace所有 namespace 都需要修改成新的 修改 ingressclass 修改启动参数 简单制作方法首先下载文件:https://github.com/kubernetes/ingress-nginx/blob/ma...
2026-07-16
Nginx开启基本http认证
Nginx 使用 ngx_http_auth_basic_module 模块支持 HTTP 基本身份验证功能 nginx 配置比如需要/api 路径下的资源需要认证 配置密码文件.htpasswd两种方法二选一 使用 htpasswd 生成 生成密码, 密码文件为 .htpasswd 使用 openssl 生成 echo -n xxx 不打印换行符 openssl 生成的密码也可以用到 linux 的/etc/shadow 里面
2026-07-16
Nginx配置双向认证
单项认证只需要服务器提供证书即可, 不验证客户端证书, 而双向认证需要验证服务器证书,也需要验证客户端证书, 不满足要求的客户端可以不允许其访问, 并且可以通过后期吊销证书的方式禁止其访问. 证书签名可以参考: 使用certbot自动申请ssl证书 使用acme.sh来自动更新https证书 制作和使用自签名证书 本文提到的 client.crt server.crt 都是通过 ca 签发的 服务器配置Nginx 配置: 代理配置比如服务器是开启了双向认证的, 我想用一台 Nginx 做代理, 证书都绑定到这台代理机器上面, 平常访问就访问这台代理 Nginx 就行了, 客户端不用再配置证书了. Nginx 配置: 如果你遇到访问 nginx 报错 502 的,恰好你的系统又是 RedHat 系, 可以尝试关闭 Selinux 使用 curl 测试
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加博主微信,进微信运维技术交流群:

