美文网首页
Nginx-504 Gateway Time-out排查及解决方

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

作者: Statmoon | 来源:发表于2018-08-31 15:24 被阅读0次

      前段时间碰到了一个调用服务失去响应的问题,服务是采用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的日志就按日期拆分了

    Nginx log

    相关文章

      网友评论

          本文标题:Nginx-504 Gateway Time-out排查及解决方

          本文链接:https://www.haomeiwen.com/subject/cniswftx.html