① 如何解决访问Apache 80端口出现超时的问题
nagios监控前端apache 80端口,同时也有监控后端webserver的端口,偶尔会出现apache端口超时的报警。但是后端服务器响应正常。基本上确定问题出现在apache上。
登陆到机器上检查问题,通过以下几点基本上能确定问题所在了。
系统负载正常,cpu利用率正常。
内存已经被分配殆尽。
ps -ef | grep httpd | wc -l ,看到已经有1024个进程,已经达到配置文件中maxclient的限制。
所以问题应该是并发访问量比较高,导致进程数已经达到配置中的限制。由于配置了长连接而且时间比较长15秒,所以在高并发的访问环境中导致没有空闲的进程来接收新的访问。这个时候访问就需要等待了。所以nagios会报超时。
分析下日志统计出每个访问基本上在5秒内就没有连续的请求了,因此把keepalivetimeout时间改成5秒。
然后reload配置文件。 apachectl -k graceful
对于几个apache的配置不是特别清楚特意记录一下。
TimeOut指令用于设置Apache等待以下三种事件的时间长度:
接受一个GET请求耗费的总时间。
POST或PUT请求时,接受两个TCP包之间的时间。
应答时TCP包传输中两个ACK包之间的时间。
我们计划在发展里程中,逐步把它们分别变得更易配置。计时器在1.2版本之前的默认值为1200,而现在已经设置为300了,但对于绝大多数情况来说仍是足够的。没有把它默认值设的更小的原因在于代码里还有点问题:有时发送一个包之后,计时器没有复位。
Apache在关闭持久连接前等待下一个请求的秒数。一旦收到一个请求,超时值将会被设置为Timeout指令指定的秒数。
对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。
② 如果php运行超时怎么返回超时错误给前端
返回前端只适用于是使用AJAX进行加载的。
varres=$.ajax({
url:'xxxxxx/index.php',
timeout:1000,//超时时间设置,单位毫秒
complete:function(xhr,status){
if(status=='timeout'){
//超时处理
}
}
});
③ 端到端诊断信息接口调用超时是啥意思
提示超时就是调用诊断信息接口的时候服务没响应或者网络问题等原因造成的超时异常,程序在前端提示使用者可能的情况。接口服务一般是前后端分离的情况下使用较多,或者提供给第三方使用,可以联系管理员检查下服务,检查下网络等情况。希望能帮到你!
④ 如何判断前端调用后端接口超时
在前端请求的时候记录请求时间(开始时间),记录接口返回数据接口的时候(结束时间),记录curl状态值。
状态值获取方法:$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
比如,设置10s 为超时。
当 结束时间 - 开始时间 》10s 的时候,记录到redis队列。
当 状态值 != 200 的请求,记录到redis队列。
然后后端消耗队列,比如 写到数据,或者 发短信,发邮件 等等。
⑤ 前端会话超时,异常怎么处理
)普通http请求的session超时。
b)异步http请求的session超时,使用ext后大部分的界面刷新都是异步的ajax请求。
不管是那种类型的http请求总是可以由一个过滤器来捕捉。
分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。
其实对于常见的ajax框架,header中还有标示自己身份的header信息。
对于普通的http请求,发现session超时后直接重定向到一个超时页面,显示访问超时。
对于异步http请求,其实有两种处理方式,第一种:发现session超时后则向请求的response中写入特定的超时头信息,客户端ajax对象检测
头信息,发现有超时状态标志后调用显示超时信息的javascript方法,提示用户访问超时。
第二种:发现session超时后,添加respone报错信息 ,在前端通过ext的requestexception事件来监听是否会话超时。
⑥ 小程序开发 云函数超时设置了,但还是3s警报
有可能是设置的时间长了。
云函数设置的是相当于云端执行时长过长时最长执行时间。而客户端断网情况下,实际属于客户端网络请求超时,并且会重试三次。每次超时是20s还是15s。
在云函数中使用了setTimeout函数并且设置了大于3秒以后触发,在前端请求云函数时出现了超时问题,代码反复检查很多遍都没有错误,控制台只输出超时,原因是云开发控制台云函数配置超时间时间默认为3秒,你设置了超过3秒当然超时。
⑦ 为什么我使用ajax请求一分钟后前端页面就504了
兄弟你解决了吗 ?
我的本地跑 不会报504,部署到服务器上请求 一分钟后就报504错误
我觉得应该不是ajax是超时,而是nginx超时,
我已经解决了 是请求超时了,你得在nginx配置文件你配置 超时时间,网络了一下 有很多中超时 ,全部配置未一个小时
⑧ 前端session超时,后台数据库查询连接还在执行
如果需要查询结果增加timeout,时间就行。如果不需要,主动终止查询,后台的查询session会处于inactive状态,kill掉就行,这样就无此连接了。如果经常需要,编写储存过程脚本。下面是参考:
CREATE OR REPLACE PROCEDURE "KILL_SESSION" AS
v_sid number;
v_serial number;
killer varchar2(1000);
CURSOR cursor_session_info is select sid,serial# from v$session where type!='BACKGROUND' and status='INACTIVE' and last_call_et>2700 and username='ICWEB' and machine='orc';
BEGIN
open cursor_session_info;
loop
fetch cursor_session_info into v_sid,v_serial;
exit when cursor_session_info%notfound;
killer:='alter system disconnect session '''||v_sid||','||v_serial||''' post_transaction immediate';
execute immediate killer;
end loop;
dbms_output.PUT_LINE(cursor_session_info%rowcount||' users with idle_time>2700s have been killed!');
close cursor_session_info;
END;
/
⑨ AJAX请求超时
使用 Firefox 浏览器的 firbug 插件 跟踪一下你就知道是怎么回事了
我估计是你的 db_config.do 地址不对.
⑩ 前台超时修改哪里的配置
数据计算量过大,接口响应时间过长时,网关会报超时,页面就挂了,没有更好的解决办法时,暂时采用以下的临时方案:
1.将原本的一个接口拆分为3个,三个接口异步操作。接口1:获取本地异步操作的唯一标识——唯一且加密后的code值(请求体:此次查询操作的查询条件;返回体:唯一的加密后的唯一code)。接口2:轮询此次查询的结果是否已计算并准备好(请求体:接口1返回的code;返回体:-1或0——0数据未计算完成1-数据已经计算完成并准备好)。接口3:查询(请求体:接口1返回的code;返回体:最终的查询结果)。
2.三个接口的执行顺序。页面发起查询请求,首先调用接口1,获取code。code已返回,前端启用定时器,固定间隔调用接口2,直到接口2返回1,停止轮询,调用接口3,拿到返回数据,渲染页面。前端开始调用接口2时,后端同时执行接口2和3,获取查询状态。