Nginx-504 Gateway Time-out排查及解决方案

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:   前段时间碰到了一个调用服务失去响应的问题,服务是采用Java开发,部署在Tomcat上,前端使用Nginx做代理,但是通过Nginx调用服务的时候一直报504 Gateway Time-out错误,跨过Nginx直接调用服务又正常,所有锁定错误和Nginx有关,后经排查发现是Nginx的日志过大,将存储盘空间占满了,导致自身日志不能正常写入。

  前段时间碰到了一个调用服务失去响应的问题,服务是采用Java开发,部署在Tomcat上,前端使用Nginx做代理,但是通过Nginx调用服务的时候一直报504 Gateway Time-out错误,跨过Nginx直接调用服务又正常,所有锁定错误和Nginx有关,后经排查发现是Nginx的日志过大,将存储盘空间占满了,导致自身日志不能正常写入。因为Nginx的日志自身没有最大值限制,不会覆盖和拆分。
  为了解决Nginx日志增长占满磁盘的问题,想到了将日志拆分删除,每天0点拆分日志,最多保留7天的日志文件。

  • 新建一个nginx-log-manage.sh,写入如下内容:
# Directory of nginx log files
LOGS_PATH=/usr/local/nginx/logs
DAYS=7
  
# get yesterday date format as yyyy-MM-dd  
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)  
  
# move log files  
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log  
  
# 
kill -USR1 $(cat ${LOGS_PATH}/nginx.pid)

# delete 7 days ago nginx log files
find $LOGS_PATH -mtime +$DAYS -exec rm -rf {} \;

同时增加一个Linux定时任务,注意文件的位置,每天0点执行该批处理文件

echo "0 0 * * * root /usr/local/nginx/sbin/nginx-log-manage.sh" >> /etc/crontab

然后过几天观察,Nginx的日志就按日期拆分了

img_7c263c41886594fd930d1d73bc701daa.png
Nginx log
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
应用服务中间件 网络安全 nginx
【Nginx】Nginx启动显示80端口占用问题的解决方案
【Nginx】Nginx启动显示80端口占用问题的解决方案
780 1
|
4月前
|
负载均衡 应用服务中间件 API
Nginx、Kong、Apisix、Gateway网关比较
Nginx、Kong、Apisix、Gateway网关比较
712 1
Nginx、Kong、Apisix、Gateway网关比较
|
4月前
|
前端开发 应用服务中间件 API
比Nginx更好用的Gateway!
比Nginx更好用的Gateway!
89 1
比Nginx更好用的Gateway!
|
4月前
|
应用服务中间件 网络安全 nginx
百度搜索:蓝易云【nginx502 Bad Gateway错误解决办法】
请注意,解决502错误可能涉及到具体的网络架构和配置,因此以上办法仅供参考。如果问题仍然存在,建议根据具体情况深入分析并检查相关配置和服务器状态。同时,保持Nginx和上游服务器的版本为最新也是一个良好的实践,以获取更好的稳定性和性能。
110 2
|
3月前
|
应用服务中间件 nginx
Nginx 出现403 Forbidden 的几种解决方案【已解决】
Nginx 出现403 Forbidden 的几种解决方案【已解决】
3270 3
|
17天前
|
Java 应用服务中间件 nginx
【Azure Spring Apps】Spring App部署上云遇见 502 Bad Gateway nginx
【Azure Spring Apps】Spring App部署上云遇见 502 Bad Gateway nginx
|
3月前
|
Java 应用服务中间件 nginx
【Azure Spring Apps】Spring App部署上云遇见 502 Bad Gateway nginx
在部署Azure Spring App后,用户遇到502 Bad Gateway错误,问题源于Nginx。解决方案是检查并关闭Spring App的ingress-to-app TLS配置,因为若未启用HTTPS访问,Nginx通过HTTPS访问应用会导致此错误。
|
2月前
|
网络协议 应用服务中间件 网络安全
[已解决]504 Gateway Time-out 网关超时
[已解决]504 Gateway Time-out 网关超时
95 0
|
3月前
|
负载均衡 Java API
Spring Cloud Gateway 详解:构建高效的API网关解决方案
Spring Cloud Gateway 详解:构建高效的API网关解决方案
62 0
|
4月前
|
Java 应用服务中间件 nginx
一文读懂:Nginx 和Gateway
一文读懂:Nginx 和Gateway
435 1