var ajaxTimeoutTest=$.ajax({  url:'',//请求地址,我来为大家讲解一下关于网关服务器超时?跟着小编一起来看一看吧!

网关服务器超时(网关超时504Gateway)

网关服务器超时

一、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:连接超时时间,默认60秒

fastcgi_send_timeout:发送请求过程的超时时间,默认值60秒

fastcgi_read_timeout:发送输出过程的超时时间,默认值60秒

server {

listen 8080;

location / {

proxy_pass http://xxx.com/api;

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;

,