龙空技术网

504 Gateway Time-out

可靠80后程序猿 152

前言:

眼前咱们对“ajaxtimeouterror”可能比较关心,咱们都需要分析一些“ajaxtimeouterror”的相关资讯。那么小编也在网上网罗了一些对于“ajaxtimeouterror””的相关知识,希望各位老铁们能喜欢,姐妹们快快来学习一下吧!

一、Ajax设置超时时长

var ajaxTimeoutTest=$.ajax({

  url:'',//请求地址

  timeout:1000,//超时时间设置, 单位毫秒

  type:'GET',//get或post

  data :{}, //请求所传参数,json格式

  dataType:'json',//返回的数据格式

  success:function(data){ //请求成功的回调函数

    alert("成功");

  },

  complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数

    if(status=='timeout'){//超时,status还有success,error等值的情况

      ajaxTimeoutTest.abort();

      alert("超时");

    }

  }

})

二、nginx访问出现504 Gateway Time-out

分析

nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如导入一批大数据导致前端等待很长时间,这样就会出现超时。

通常修改nginx以下配置可以解决问题

nginx.conf中,设置以下几个参数,增加超时时间

http {

...

fastcgi_connect_timeout 30000;

fastcgi_send_timeout 30000;

fastcgi_read_timeout 30000;

...

}

fastcgi_connect_timeout

fastcgi连接超时时间,默认60秒

fastcgi_send_timeout

nginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒

fastcgi_read_timeout

fastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒

server {

listen 8080;

location / {

proxy_pass ;

proxy_connect_timeout 30000;

proxy_send_timeout 30000;

proxy_read_timeout 30000;

}

}

proxy_connect_timeout 30000s;#nginx跟后端服务器连接超时时间(代理连接超时)

proxy_send_timeout 30000s;#后端服务器数据回传时间(代理发送超时)

proxy_read_timeout 30000s;#连接成功后,后端服务器响应时间(代理接收超时)

三、更改MySQL数据库超时时间

1.查看当前锁超时时间

show variables like 'innodb_lock_wait_timeout';

2.查看全局锁超时时间

SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';

3.更改当前锁超时时间为120秒

SET innodb_lock_wait_timeout=120;

4.更改全局锁超时时间为120秒

SET GLOBAL innodb_lock_wait_timeout=120;

标签: #ajaxtimeouterror #ajax的超时 #ajax如何统计在线时长 #nginx 504