Nginx


如何解决 PHP-FPM 504 超时问题的详细指南

TCP连接与PHP-FPM超时的问题分析与应对措施

背景介绍

在一台线上服务器上,部署了两个服务 A 和 B,A 服务通过 Nginx 处理外部请求,并向本地的 B 服务请求数据。同时,B 服务也接收大量的直接请求。在某些时段内,Nginx 会偶发性地返回 504 请求超时和少量的 502 连接被断开。在此期间,机器的 CPU、内存和 IO 等基础指标均正常,QPS(每秒请求数)仅有微小波动,未超过 100,远低于高峰期的 2800。

通过分析日志,发现从 A 服务到 B 服务的请求链路中,A 服务最后一条日志到 B 服务第一条日志之间的时间间隔长达 10 多秒,暗示请求处理过程中可能出现了超时问题。

基于 Nginx、Lua 和 Redis 的令牌桶算法限流教程

令牌桶算法(Token Bucket)作为一种高效的限流机制,能够帮助开发者有效控制流量,保护系统免受过载。在使用 Nginx、Lua 和 Redis 的组合中,实现令牌桶算法不仅提升了性能,还确保了高并发环境下的安全性。本文将深入探讨如何通过这三者的结合来实现基础的令牌桶算法限流,提供具体的实现步骤和代码示例,助力开发者轻松上手并优化 API 调用。在接下来的内容中,将详细分析令牌桶的工作原理,以及在实际应用中的关键注意事项,确保您的系统能够在高流量情况下依然保持稳定。

使用 OpenResty 和 Nginx Lua 修改 InfluxDB API 的返回结构

在 API 平台中,接口的返回结构统一性至关重要。许多 API 服务需要通过一个标准化的接口返回数据,以确保能够被有效处理。如果你正在使用 InfluxDB 的 API 并希望将其返回结构统一为如下格式:

{
  "code": 0,
  "msg": "",
  "data": {}
}

那么本文将介绍如何使用 OpenResty 和 Nginx Lua 实现这一目标。

Flask 通过 Nginx 代理后获取 HTTPS 正确 URL 的解决方案

在使用 Flask 和 Nginx 搭建应用时,可能会遇到 wsgi.url_scheme 返回 http 而非 https 的问题。这是因为 Nginx 在处理 HTTPS 请求时,实际上是将请求通过 HTTP 协议转发给 Flask 后端,导致 Flask 认为请求是通过 HTTP 进行的。这种情况不仅影响到 URL 的生成,还可能对应用的安全性造成隐患。