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

简介:   前段时间碰到了一个调用服务失去响应的问题,服务是采用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 504 Gateway Time-out
nginx 504 Gateway Time-out
108 0
|
4月前
|
安全 JavaScript 应用服务中间件
Nginx 跨域解决方案
跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器,它允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。 跨域资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是GET以外的 HTTP 请求
|
5月前
|
JavaScript 前端开发 Ubuntu
nginx部署vue后显示500 Internal Server Error解决方案
nginx部署vue后显示500 Internal Server Error解决方案
135 0
|
8月前
|
负载均衡 应用服务中间件 Linux
Nginx 惊群的原因和解决方案
Nginx 惊群的原因和解决方案
|
9月前
|
应用服务中间件 Linux 网络安全
宝塔Linux面板nginx配置SSL证书的解决方案
宝塔Linux面板nginx配置SSL证书的解决方案
430 0
|
网络协议 应用服务中间件 nginx
浏览器debug 调试一打开 Nginx 就 504 Gateway Time-out
浏览器debug 调试一打开 Nginx 就 504 Gateway Time-out
232 0
浏览器debug 调试一打开 Nginx 就 504 Gateway Time-out
|
关系型数据库 MySQL
node线上项目连接mysql出现 504 Gateway Time-Out
node线上项目连接mysql出现 504 Gateway Time-Out
|
负载均衡 监控 应用服务中间件
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!
之前讲了Nginx 如何实现负载均衡,以及如何实现动静分离。但是还确少Nginx 高可用的部分。因为Nginx 处于整个系统非常重要的位置,Nginx的高可用影响到整个系统的稳定性。如果nginx服务器宕机后端web服务将无法提供服务,影响严重。所以,接下来就来介绍Nginx + keepalived 实现高可用的方案。
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!