我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢?
笔者曾今在更新 Nginx 服务的过程中发现旧的 Nginx worker 进程退出非常缓慢(旧的 worker 进程始终处在 \"is shutting down\" 的状态),对此非常好奇,并对此展开了一些研究,本文将介绍 Nginx worker 进程退出时的准备步骤,延缓退出的原因,并介绍对应的解决办法。
笔者曾今在更新 Nginx 服务的过程中发现旧的 Nginx worker 进程退出非常缓慢(旧的 worker 进程始终处在 \"is shutting down\" 的状态),对此非常好奇,并对此展开了一些研究,本文将介绍 Nginx worker 进程退出时的准备步骤,延缓退出的原因,并介绍对应的解决办法。
本文讲解了如何在 Nginx 中配置防盗链,主要通过验证 HTTP 请求中的 Referer 头部来防止未经授权的访问。配置方法包括使用 `valid_referers` 指令定义允许的 Referer,并在不符合条件时返回 403 错误。该配置适合防止图片、CSS 等静态资源被外部站点盗用,但需注意 Referer 头部可被伪造,建议结合其他安全措施。
本文介绍了配置 Nginx 防御 CC 攻击的方法,包括限制请求速率和连接数、设置 IP 黑白名单、关闭慢速连接等。通过 `limit_req_zone` 和 `limit_conn_zone` 等指令,管理员可以有效控制单一 IP 的访问频率。此外,还建议设置文件类型和请求大小限制,并使用 Fail2Ban 工具监控日志,自动封禁异常 IP。这些措施有助于提升网站的安全性和稳定性。
如何高效监控 Nginx?本文介绍了通过 nginx-prometheus-exporter 和 Cprobe 实现 Nginx 监控的详细步骤,并提供了数据采集和 Prometheus 集成的最佳实践。如果你想提升服务器监控能力,快来阅读这篇实用指南!
遇到 Nginx 反代时的 SSL_do_handshake 错误?本文深入分析了该问题的原因,并提供了详细的解决方案,包括如何配置 Nginx 以避免 502 错误。如果你在运维中遇到 SSL 问题,这篇文章能帮你快速解决!
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。
但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。
但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
Nginx日志的分析,尤其是加白,在不是特别清楚功能和作用的情况下,还是应该细粒度的操作,比如先按照Content-Type加白,就比按照domain维度的加白粒度会更细一点,比按照uri来加白要更方便和准确一点。简单记录一下,方便后面有需要的时候参考。
本文主要按照 Mozilla 对于服务端 TLS 协议配置的建议来提供 nginx 的配置建议,按照这些建议进行配置可以让我们的站点更加安全。
那段时间我的站点有时会打不开,起初以为是网络问题,后来越来越严重,进入后台才发现数据库 IO 拉满了。看了看 nginx 的日志才发现站点被疯扫,于是打算做点什么。
然后在 Github 上看了几个防火墙模块,要不然功能不全,要不然使用复杂,于是萌生了自己写模块的想法。
在某次博主的交流讨论时,忽然间发现自己站点原定让 HTTP 转发 HTTPS 的支持功能,实际上并不没有生效。如果是直接输入域名访问的话,那么会出现 400 的错误页面。当初为了让全站支持 HTTPS 也是耗费了不少精力,没想到却是这个结果。