fpm缓存dns
1. 几种常见的php超时处理方法
【Web服务器超时处理】
[ Apache ]
一般在性能很高的情况下,缺省所有超时配置都是30秒,但是在上传文件,或者网络速度很慢的情况下,那么可能触发超时操作。
目前apachefastcgiphp-fpm模式下有三个超时设置:
fastcgi超时设置:
修改的fastcgi连接配置,类似如下:
复制代码 代码如下:
<IfMolemod_fastcgi.c>
FastCgiExternalServer/home/forum/apache/apache_php/cgi-bin/php-cgi-socket/home/forum/php5/etc/php-fpm.sock
ScriptAlias/fcgi-bin/"/home/forum/apache/apache_php/cgi-bin/"
AddHandlerphp-fastcgi.php
Actionphp-fastcgi/fcgi-bin/php-cgi
AddTypeapplication/x-
</IfMole>
缺省配置是30s,如果需要定制自己的配置,需要修改配置,比如修改为100秒:(修改后重启apache):
复制代码 代码如下:
<IfMolemod_fastcgi.c>
FastCgiExternalServer/home/forum/apache/apache_php/cgi-bin/php-cgi-socket/home/forum/php5/etc/php-fpm.sock-idle-timeout100
ScriptAlias/fcgi-bin/"/home/forum/apache/apache_php/cgi-bin/"
AddHandlerphp-fastcgi.php
Actionphp-fastcgi/fcgi-bin/php-cgi
AddTypeapplication/x-
</IfMole>
如果超时会返回500错误,断开跟后端php服务的连接,同时记录一条apache错误日志:
[ThuJan2718:30:152011][error][client10.81.41.110]FastCGI:commwithserver"/home/forum/apache/apache_php/cgi-bin/php-cgi"aborted:idletimeout(30sec)
[ThuJan2718:30:152011][error][client10.81.41.110]FastCGI:incompleteheaders(0bytes)receivedfromserver"/home/forum/apache/apache_php/cgi-bin/php-cgi"
其他fastcgi配置参数说明:
复制代码 代码如下:
IdleTimeout发呆时限
ProcessLifeTime一个进程的最长生命周期,过期之后无条件kill
MaxProcessCount最大进程个数
DefaultMinClassProcessCount每个程序启动的最小进程个数
DefaultMaxClassProcessCount每个程序启动的最大进程个数
IPCConnectTimeout程序响应超时时间
IPCCommTimeout与程序通讯的最长时间,上面的错误有可能就是这个值设置过小造成的
MaxRequestsPerProcess每个进程最多完成处理个数,达成后自杀
[ Lighttpd ]
配置:lig
Lighttpd配置中,关于超时的参数有如下几个(篇幅考虑,只写读超时,写超时参数同理):
主要涉及选项:
server.max-keep-alive-idle=5
server.max-read-idle=60
server.read-timeout=0
server.max-connection-idle=360
复制代码 代码如下:
#每次keep-alive的最大请求数,默认值是16
server.max-keep-alive-requests=100
#keep-alive的最长等待时间,单位是秒,默认值是5
server.max-keep-alive-idle=1200
#lighttpd的work子进程数,默认值是0,单进程运行
server.max-worker=2
#限制用户在发送请求的过程中,最大的中间停顿时间(单位是秒),
#如果用户在发送请求的过程中(没发完请求),中间停顿的时间太长,lighttpd会主动断开连接
#默认值是60(秒)
server.max-read-idle=1200
#限制用户在接收应答的过程中,最大的中间停顿时间(单位是秒),
#如果用户在接收应答的过程中(没接完),中间停顿的时间太长,lighttpd会主动断开连接
#默认值是360(秒)
server.max-write-idle=12000
#读客户端请求的超时限制,单位是秒,配为0表示不作限制
#设置小于max-read-idle时,read-timeout生效
server.read-timeout=0
#写应答页面给客户端的超时限制,单位是秒,配为0表示不作限制
#设置小于max-write-idle时,write-timeout生效
server.write-timeout=0
#请求的处理时间上限,如果用了mod_proxy_core,那就是和后端的交互时间限制,单位是秒
server.max-connection-idle=1200
说明:
对于一个keep-alive连接上的连续请求,发送第一个请求内容的最大间隔由参数max-read-idle决定,从第二个请求起,发送请求内容的最大间隔由参数max-keep-alive-idle决定。请求间的间隔超时也由max-keep-alive-idle决定。发送请求内容的总时间超时由参数read-timeout决定。Lighttpd与后端交互数据的超时由max-connection-idle决定。
延伸阅读:
[ Nginx ]
配置:nf
复制代码 代码如下:
http{
#Fastcgi:(针对后端的fastcgi生效,fastcgi不属于proxy模式)
fastcgi_connect_timeout5;#连接超时
fastcgi_send_timeout10; #写超时
fastcgi_read_timeout10;#读取超时
#Proxy:(针对proxy/upstreams的生效)
proxy_connect_timeout15s;#连接超时
proxy_read_timeout24s;#读超时
proxy_send_timeout10s; #写超时
}
说明:
Nginx 的超时设置倒是非常清晰容易理解,上面超时针对不同工作模式,但是因为超时带来的问题是非常多的。
延伸阅读:
ml
ml
ml
【PHP本身超时处理】
[ PHP-fpm ]
配置:nf
复制代码 代码如下:
<?xmlversion="1.0"?>
<configuration>
//...
.
.
EquivalenttoPHP_FCGI_.fcgi
Usedwithanypm_style.
#php-cgi的进程数量
<valuename="max_children">128</value>
Thetimeout(inseconds)
Shouldbeusedwhen'max_execution_time'
'0s'means'off'
#php-fpm 请求执行超时时间,0s为永不超时,否则设置一个 Ns 为超时的秒数
<valuename="request_terminate_timeout">0s</value>
Thetimeout(inseconds).logfile
'0s'means'off'
<valuename="request_slowlog_timeout">0s</value>
</configuration>
说明:
在php.ini中,有一个参数max_execution_time可以设置PHP脚本的最大执行时间,但是,在php-cgi(php-fpm)中,该参数不会起效。真正能够控制PHP脚本最大执行时:
<valuename="request_terminate_timeout">0s</value>
就是说如果是使用mod_php5.so的模式运行max_execution_time是会生效的,但是如果是php-fpm模式中运行时不生效的。
延伸阅读:
[ PHP ]
配置:php.ini
选项:
max_execution_time=30
或者在代码里设置:
ini_set("max_execution_time",30);
set_time_limit(30);
说明:
对当前会话生效,比如设置0一直不超时,但是如果php的safe_mode打开了,这些设置都会不生效。
效果一样,但是具体内容需要参考php-fpm部分内容,如果php-fpm中设置了request_terminate_timeout的话,那么max_execution_time就不生效。
【后端&接口访问超时】
【HTTP访问】
一般我们访问HTTP方式很多,主要是:curl,socket,file_get_contents()等方法。
如果碰到对方服务器一直没有响应的时候,我们就悲剧了,很容易把整个服务器搞死,所以在访问http的时候也需要考虑超时的问题。
[ CURL 访问HTTP]
CURL 是我们常用的一种比较靠谱的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。
CURL:
curl_setopt($ch,opt)可以设置一些超时的设置,主要包括:
*(重要)CURLOPT_TIMEOUT设置cURL允许执行的最长秒数。
*(重要)CURLOPT_TIMEOUT_MS设置cURL允许执行的最长毫秒数。(在cURL7.16.2中被加入。从PHP5.2.3起可使用。)
CURLOPT_CONNECTTIMEOUT在发起连接前等待的时间,如果设置为0,则无限等待。
CURLOPT_CONNECTTIMEOUT_MS尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。在cURL7.16.2中被加入。从PHP5.2.3开始可用。
CURLOPT_DNS_CACHE_TIMEOUT设置在内存中保存DNS信息的时间,默认为120秒。
curl普通秒级超时:
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,60);//只需要设置一个秒的数量就可以
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_USERAGENT,$defined_vars['HTTP_USER_AGENT']);
curl普通秒级超时使用:
curl_setopt($ch,CURLOPT_TIMEOUT,60);
curl如果需要进行毫秒超时,需要增加:
curl_easy_setopt(curl,CURLOPT_NOSIGNAL,1L);
或者是:
curl_setopt($ch,CURLOPT_NOSIGNAL,true);是可以支持毫秒级别超时设置的
curl一个毫秒级超时的例子:
复制代码 代码如下:
<?php
if(!isset($_GET['foo'])){
//Client
$ch=curl_init('');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_NOSIGNAL,1);//注意,毫秒超时一定要设置这个
curl_setopt($ch,CURLOPT_TIMEOUT_MS,200);//超时毫秒,cURL7.16.2中被加入。从PHP5.2.3起可使用
$data=curl_exec($ch);
$curl_errno=curl_errno($ch);
$curl_error=curl_error($ch);
curl_close($ch);
if($curl_errno>0){
echo"cURLError($curl_errno):$curl_errorn";
}else{
echo"Datareceived:$datan";
}
}else{
//Server
sleep(10);
echo"Done.";
}
?>
其他一些技巧:
1. 按照经验总结是:cURL版本>=libcurl/7.21.0版本,毫秒级超时是一定生效的,切记。
2. curl_multi的毫秒级超时也有问题。。单次访问是支持ms级超时的,curl_multi并行调多个会不准
[流处理方式访问HTTP]
除了curl,我们还经常自己使用fsockopen、或者是file操作函数来进行HTTP协议的处理,所以,我们对这块的超时处理也是必须的。
一般连接超时可以直接设置,但是流读取超时需要单独处理。
自己写代码处理:
复制代码 代码如下:
$tmCurrent=gettimeofday();
$intUSGone=($tmCurrent['sec']-$tmStart['sec'])*1000000
+($tmCurrent['usec']-$tmStart['usec']);
if($intUSGone>$this->_intReadTimeoutUS){
returnfalse;
}
或者使用内置流处理函数stream_set_timeout()和stream_get_meta_data()处理:
复制代码 代码如下:
<?php
//Timeoutinseconds
$timeout=5;
$fp=fsockopen("",80,$errno,$errstr,$timeout);
if($fp){
fwrite($fp,"GET/HTTP/1.0rn");
fwrite($fp,"Host:rn");
fwrite($fp,"Connection:Closernrn");
stream_set_blocking($fp,true);//重要,设置为非阻塞模式
stream_set_timeout($fp,$timeout);//设置超时
$info=stream_get_meta_data($fp);
while((!feof($fp))&&(!$info['timed_out'])){
$data.=fgets($fp,4096);
$info=stream_get_meta_data($fp);
ob_flush;
flush();
}
if($info['timed_out']){
echo"ConnectionTimedOut!";
}else{
echo$data;
}
}
file_get_contents超时:
复制代码 代码如下:
<?php
$timeout=array(
'http'=>array(
'timeout'=>5//设置一个超时时间,单位为秒
)
);
$ctx=stream_context_create($timeout);
$text=file_get_contents("",0,$ctx);
?>
fopen超时:
复制代码 代码如下:
<?php
$timeout=array(
'http'=>array(
'timeout'=>5//设置一个超时时间,单位为秒
)
);
$ctx=stream_context_create($timeout);
if($fp=fopen("","r",false,$ctx)){
while($c=fread($fp,8192)){
echo$c;
}
fclose($fp);
}
?>
【Mysql】
php中的mysql客户端都没有设置超时的选项,mysqli和mysql都没有,但是libmysql是提供超时选项的,只是我们在php中隐藏了而已。
那么如何在PHP中使用这个操作捏,就需要我们自己定义一些MySQL操作常量,主要涉及的常量有:
MYSQL_OPT_READ_TIMEOUT=11;
MYSQL_OPT_WRITE_TIMEOUT=12;
这两个,定义以后,可以使用options设置相应的值。
不过有个注意点,mysql内部实现:
1.超时设置单位为秒,最少配置1秒
2.但mysql底层的read会重试两次,所以实际会是3秒
重试两次+自身一次=3倍超时时间,那么就是说最少超时时间是3秒,不会低于这个值,对于大部分应用来说可以接受,但是对于小部分应用需要优化。
查看一个设置访问mysql超时的php实例:
复制代码 代码如下:
<?php
//自己定义读写超时常量
if(!defined('MYSQL_OPT_READ_TIMEOUT')){
define('MYSQL_OPT_READ_TIMEOUT',11);
}
if(!defined('MYSQL_OPT_WRITE_TIMEOUT')){
define('MYSQL_OPT_WRITE_TIMEOUT',12);
}
//设置超时
$mysqli=mysqli_init();
$mysqli->options(MYSQL_OPT_READ_TIMEOUT,3);
$mysqli->options(MYSQL_OPT_WRITE_TIMEOUT,1);
//连接数据库
$mysqli->real_connect("localhost","root","root","test");
if(mysqli_connect_errno()){
printf("Connectfailed:%s/n",mysqli_connect_error());
exit();
}
//执行查询sleep1秒不超时
printf("Hostinformation:%s/n",$mysqli->host_info);
if(!($res=$mysqli->query('selectsleep(1)'))){
echo"query1error:".$mysqli->error."/n";
}else{
echo"Query1:querysuccess/n";
}
//执行查询sleep9秒会超时
if(!($res=$mysqli->query('selectsleep(9)'))){
echo"query2error:".$mysqli->error."/n";
}else{
echo"Query2:querysuccess/n";
}
$mysqli->close();
echo"closemysqlconnection/n";
?>
延伸阅读:
【Memcached】
[PHP扩展]
php_memcache客户端:
连接超时:boolMemcache::connect(string$host[,int$port[,int$timeout]])
在get和set的时候,都没有明确的超时设置参数。
libmemcached客户端:在php接口没有明显的超时参数。
说明:所以说,在PHP中访问Memcached是存在很多问题的,需要自己hack部分操作,或者是参考网上补丁。
[C&C++访问Memcached]
客户端:libmemcached客户端
说明:memcache超时配置可以配置小点,比如5,10个毫秒已经够用了,超过这个时间还不如从数据库查询。
下面是一个连接和读取set数据的超时的C++示例:
复制代码 代码如下:
//创建连接超时(连接到Memcached)
memcached_st*MemCacheProxy::_create_handle()
{
memcached_st*mmc=NULL;
memcached_return_tprc;
if(_mpool!=NULL){//getfrompool
mmc=memcached_pool_pop(_mpool,false,&prc);
if(mmc==NULL){
__LOG_WARNING__("MemCacheProxy","gethandlefrompoolerror[%d]",(int)prc);
}
returnmmc;
}
memcached_st*handle=memcached_create(NULL);
if(handle==NULL){
__LOG_WARNING__("MemCacheProxy","create_handleerror");
returnNULL;
}
//设置连接/读取超时
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_HASH,MEMCACHED_HASH_DEFAULT);
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_NO_BLOCK,_noblock);//参数MEMCACHED_BEHAVIOR_NO_BLOCK为1使超时配置生效,不设置超时会不生效,关键时候会悲剧的,容易引起雪崩
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT,_connect_timeout);//连接超时
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_RCV_TIMEOUT,_read_timeout);//读超时
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_SND_TIMEOUT,_send_timeout);//写超时
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_POLL_TIMEOUT,_poll_timeout);
//设置一致hash
//memcached_behavior_set_distribution(handle,MEMCACHED_DISTRIBUTION_CONSISTENT);
memcached_behavior_set(handle,MEMCACHED_BEHAVIOR_DISTRIBUTION,MEMCACHED_DISTRIBUTION_CONSISTENT);
memcached_returnrc;
for(uinti=0;i<_server_count;i++){
rc=memcached_server_add(handle,_ips[i],_ports[i]);
if(MEMCACHED_SUCCESS!=rc){
__LOG_WARNING__("MemCacheProxy","addserver[%s:%d]failed.",_ips[i],_ports[i]);
}
}
_mpool=memcached_pool_create(handle,_min_connect,_max_connect);
if(_mpool==NULL){
__LOG_WARNING__("MemCacheProxy","create_poolerror");
returnNULL;
}
mmc=memcached_pool_pop(_mpool,false,&prc);
if(mmc==NULL){
__LOG_WARNING__("MyMemCacheProxy","gethandlefrompoolerror[%d]",(int)prc);
}
//__LOG_DEBUG__("MemCacheProxy","gethandle[%p]",handle);
returnmmc;
}
//设置一个key超时(set一个数据到memcached)
boolMemCacheProxy::_add(memcached_st*handle,unsignedint*key,constchar*value,intlen,unsignedinttimeout)
{
memcached_returnrc;
chartmp[1024];
snprintf(tmp,sizeof(tmp),"%u#%u",key[0],key[1]);
//有个timeout值
rc=memcached_set(handle,tmp,strlen(tmp),(char*)value,len,timeout,0);
if(MEMCACHED_SUCCESS!=rc){
returnfalse;
}
returntrue;
}
//Memcache读取数据超时(没有设置)
libmemcahed源码中接口定义:
LIBMEMCACHED_APIchar*memcached_get(memcached_st*ptr,constchar*key,size_tkey_length,size_t*value_length,uint32_t*flags,memcached_return_t*error);
LIBMEMCACHED_APImemcached_return_tmemcached_mget(memcached_st*ptr,constchar*const*keys,constsize_t*key_length,size_tnumber_of_keys);
从接口中可以看出在读取数据的时候,是没有超时设置的。
延伸阅读:
【如何实现超时】
程序中需要有超时这种功能,比如你单独访问一个后端Socket模块,Socket模块不属于我们上面描述的任何一种的时候,它的协议也是私有的,那么这个时候可能需要自己去实现一些超时处理策略,这个时候就需要一些处理代码了。
[PHP中超时实现]
一、初级:最简单的超时实现 (秒级超时)
思路很简单:链接一个后端,然后设置为非阻塞模式,如果没有连接上就一直循环,判断当前时间和超时时间之间的差异。
phpsocket中实现原始的超时:(每次循环都当前时间去减,性能会很差,cpu占用会较高)
复制代码 代码如下:
<?
$host="127.0.0.1";
$port="80";
$timeout=15;//timeoutinseconds
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)
ordie("Unabletocreatesocketn");
socket_set_nonblock($socket) //务必设置为阻塞模式
ordie("Unabletosetnonblockonsocketn");
$time=time();
//循环的时候每次都减去相应值
while(!@socket_connect($socket,$host,$port))//如果没有连接上就一直死循环
{
$err=socket_last_error($socket);
if($err==115||$err==114)
{
if((time()-$time)>=$timeout)//每次都需要去判断一下是否超时了
{
socket_close($socket);
die("Connectiontimedout.n");
}
sleep(1);
continue;
}
die(socket_strerror($err)."n");
}
socket_set_block($this->socket)//还原阻塞模式
ordie("Unabletosetblockonsocketn");
?>
二、升级:使用PHP自带异步IO去实现(毫秒级超时)
说明:
异步IO:异步IO的概念和同步IO相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。异步IO将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。
多路复用:复用模型是对多个IO操作进行检测,返回可操作集合,这样就可以对其进行操作了。这样就避免了阻塞IO不能随时处理各个IO和非阻塞占用系统资源的确定。
使用socket_select()实现超时
socket_select(...,floor($timeout),ceil($timeout*1000000));
select的特点:能够设置到微秒级别的超时!
使用socket_select()的超时代码(需要了解一些异步IO编程的知识去理解)
复制代码 代码如下:
编程 调用类 编程#
<?php
$server=newServer;
$client=newClient;
for(;;){
foreach($select->can_read(0)as$socket){
if($socket==$client->socket){
//NewClientSocket
$select->add(socket_accept($client->socket));
}
else{
//there'ssomethingtoreadon$socket
}
}
}
?>
编程 异步多路复用IO & 超时连接处理类 编程
<?php
classselect{
var$sockets;
functionselect($sockets){
$this->sockets=array();
foreach($socketsas$socket){
$this->add($socket);
}
}
functionadd($add_socket){
array_push($this->sockets,$add_socket);
}
functionremove($remove_socket){
$sockets=array();
foreach($this->socketsas$socket){
if($remove_socket!=$socket)
$sockets[]=$socket;
}
$this->sockets=$sockets;
}
functioncan_read($timeout){
$read=$this->sockets;
socket_select($read,$write=NULL,$except=NULL,$timeout);
return$read;
}
functioncan_write($timeout){
$write=$this->sockets;
socket_select($read=NULL,$write,$except=NULL,$timeout);
return$write;
}
}
?>
[C&C++中超时实现]
一般在LinuxC/C++中,可以使用:alarm()设置定时器的方式实现秒级超时,或者:select()、poll()、epoll()之类的异步复用IO实现毫秒级超时。也可以使用二次封装的异步io库(libevent,libev)也能实现。
一、使用alarm中用信号实现超时 (秒级超时)
说明:Linux内核connect超时通常为75秒,我们可以设置更小的时间如10秒来提前从connect中返回。这里用使用信号处理机制,调用alarm,超时后产生SIGALRM信号(也可使用select实现)
用alarym秒级实现connect设置超时代码示例:
复制代码 代码如下:
//信号处理函数
staticvoidconnect_alarm(intsigno)
{
debug_printf("SignalHandler");
return;
}
//alarm超时连接实现
staticvoidconn_alarm()
{
Sigfunc*sigfunc;//现有信号处理函数
sigfunc=signal(SIGALRM,connect_alarm);//建立信号处理函数connect_alarm,(如果有)保存现有的信号处理函数
inttimeout=5;
//设置闹钟
if(alarm(timeout)!=0){
//...闹钟已经设置处理
}
//进行连接操作
if(connect(m_Socket,(structsockaddr*)&addr,sizeof(addr))<0){
if(errno==EINTR){//如果错误号设置为EINTR,说明超时中断了
debug_printf("Timeout");
2. 关于电脑部件的英语单词,我急用!
PC:个人计算机Personal Computer
·CPU:中央处理器Central Processing Unit
·CPU Fan:中央处理器的“散热器”(Fan)
·MB:主机板MotherBoard
·RAM:内存Random Access Memory,以PC-代号划分规格,如PC-133,PC-1066,PC-2700
·HDD:硬盘Hard Disk Drive
·FDD:软盘Floopy Disk Drive
·CD-ROM:光驱Compact Disk Read Only Memory
·DVD-ROM:DVD光驱Digital Versatile Disk Read Only Memory
·CD-RW:刻录机Compact Disk ReWriter
·VGA:显示卡(显示卡正式用语应为Display Card)
·AUD:声卡(声卡正式用语应为Sound Card)
·LAN:网卡(网卡正式用语应为Network Card)
·MODM:数据卡或调制解调器Modem
·HUB:集线器
·WebCam:网络摄影机
·Capture:影音采集卡
·Case:机箱
·Power:电源
·Moniter:屏幕,CRT为显像管屏幕,LCD为液晶屏幕
·USB:通用串行总线Universal Serial Bus,用来连接外围装置
·IEEE1394:新的高速序列总线规格Institute of Electrical and Electronic Engineers
·Mouse:鼠标,常见接口规格为PS/2与USB
·KB:键盘,常见接口规格为PS/2与USB
·Speaker:喇叭
·Printer:打印机
·Scanner:扫描仪
·UPS:不断电系统
·IDE:指IDE接口规格Integrated Device
Electronics,IDE接口装置泛指采用IDE接口的各种设备
·SCSI:指SCSI接口规格Small Computer System
Interface,SCSI接口装置泛指采用SCSI接口的各种设备
·GHz:(中央处理器运算速度达)Gega赫兹/每秒
·FSB:指“前端总线(Front Side Bus)”频率,以MHz为单位
·ATA:指硬盘传输速率AT
Attachment,ATA-133表示传输速率为133MB/sec
·AGP:显示总线Accelerated Graphics
Port,以2X,4X,8X表示传输频宽模式
·PCI:外围装置连接端口Peripheral Component Interconnect
·ATX:指目前电源供应器的规格,也指主机板标准大小尺寸
·BIOS:硬件(输入/输出)基本设置程序Basic Input Output System
·CMOS:储存BIOS基本设置数据的记忆芯片Complementary Metal-Oxide Semiconctor
·POST:开机检测Power On Self Test
·OS:操作系统Operating System
·Windows:窗口操作系统,图形接口
·DOS:早期文字指令接口的操作系统
·fdisk:“规划硬盘扇区”-DOS指令之一
·format:“硬盘扇区格式化”-DOS指令之一
·setup.exe:“执行安装程序”-DOS指令之一
·Socket:插槽,如CPU插槽种类有SocketA,Socket478等等
·Pin:针脚,如ATA133硬盘排线是80Pin,如PC2700内存模块是168Pin
·Jumper:跳线(短路端子)
·bit:位(0与1这两种电路状态), 计算机数据最基本的单位
·Byte:字节,等于8 bit(八个位的组合,共有256种电路状态),计算机一个文字以8 bit来表示
·KB:等于1024 Byte
·MB:等于1024 KB
·GB:等于1024 MB
Active-matrix主动距陈
Adapter cards适配卡
Advanced application高级应用
Analytical graph分析图表
Analyze分析
Animations动画
Application software 应用软件
Arithmetic operations算术运算
Audio-output device音频输出设备
Access time存取时间
access存取
accuracy准确性
ad network cookies广告网络信息记录软件
Add-ons附软件
Address地址
Agents代理
Analog signals模拟信号
Applets程序
Asynchronous communications port异步通信端口
Attachment附件
B
Bar code条形码
Bar code reader条形码读卡器
Basic application基础程序
Binary coding schemes二进制译码方案
Binary system二进制系统
Bit比特
Browser浏览器
Bus line总线
Backup tape cartridge units备份磁带盒单元
Bandwidth带宽
Bluetooth蓝牙
Broadband宽带
Browser浏览器
Business-to-business企业对企业电子商务
Business-to-consumer企业对消费者
Bus总线
C
Cables连线
Cell单元箱
Chain printer链式打印机
Character and recognition device字符标识识别设备
Chart图表
Chassis支架
Chip芯片
Clarity清晰度
Closed architecture封闭式体系结构
Column列
Combination key结合键
computer competency计算机能力
connectivity连接,结点
Continuous-speech recognition system连续语言识别系统
Control unit操纵单元
Cordless or wireless mouse无线鼠标
Cable modems有线调制解调器
carpal tunnel syndrome腕骨神经综合症
CD-ROM可记录光盘
CD-RW可重写光盘
CD-R可记录压缩光盘
Channel信道
Chat group谈话群组
chlorofluorocarbons(CFCs) ]氯氟甲烷
Client客户端
Coaxial cable同轴电缆
cold site冷战
Commerce servers商业服务器
Communication channel信道
Communication systems信息系统
Compact disc rewritable
Compact disc光盘
computer abuse amendments act of 19941994计算机滥用法案
computer crime计算机犯罪
computer ethics计算机道德
computer fraud and abuse act of 1986计算机欺诈和滥用法案
computer matching and privacy protection act of 1988计算机查找和隐私保护法案
Computer network计算机网络
computer support specialist计算机支持专家
computer technician计算机技术人员
computer trainer计算机教师
Connection device连接设备
Connectivity连接
Consumer-to-consumer个人对个人
cookies-cutter programs信息记录截取程序
cookies信息记录程序
cracker解密高手
cumulative trauma disorder积累性损伤错乱
Cybercash电子现金
Cyberspace计算机空间
cynic愤世嫉俗者
D
Database数据库
database files数据库文件
Database manager数据库管理
Data bus数据总线
Data projector数码放映机
Desktop system unit台式电脑系统单元
Destination file目标文件
Digital cameras数码照相机
Digital notebooks数字笔记本
Digital bideo camera数码摄影机
Discrete-speech recognition system不连续语言识别系统
Document文档
document files文档文件
Dot-matrix printer点矩阵式打印机
Dual-scan monitor双向扫描显示器
Dumb terminal非智能终端
data security数据安全
Data transmission specifications数据传输说明
database administrator数据库管理员
Dataplay数字播放器
Demolation解调
denial of service attack拒绝服务攻击
Dial-up service拨号服务
Digital cash数字现金
Digital signals数字信号
Digital subscriber line数字用户线路
Digital versatile disc数字化通用磁盘
Digital video disc数字化视频光盘
Direct access直接存取
Directory search目录搜索
disaster recovery plan灾难恢复计划
Disk caching磁盘驱动器高速缓存
Diskette磁盘
Disk磁盘
Distributed data processing system分部数据处理系统
Distributed processing分布处理
Domain code域代码
Downloading下载
DVD 数字化通用磁盘
DVD-R 可写DVD
DVD-RAM DVD随机存取器
DVD-ROM 只读DVD
E
e-book电子阅读器
Expansion cards扩展卡
end user终端用户
e-cash电子现金
e-commerce电子商务
electronic cash电子现金
electronic commerce电子商务
electronic communications privacy act of1986电子通信隐私法案
encrypting加密术
energy star能源之星
Enterprise computing企业计算化
environment环境
Erasable optical disks可擦除式光盘
ergonomics人类工程学
ethics道德规范
External modem外置调制解调器
extranet企业外部网
F
Fax machine传真机
Field域
Find搜索
FireWire port port火线端口
Firmware固件
Flash RAM闪存
Flatbed scanner台式扫描器
Flat-panel monitor纯平显示器
floppy disk软盘
Formatting toolbar格式化工具条
Formula公式
Function函数
fair credit reporting act of 1970公平信用报告法案
Fiber-optic cable光纤电缆
File compression文件压缩
File decompression文件解压缩
filter过滤
firewall防火墙
firewall防火墙
Fixed disk固定硬盘
Flash memory闪存
Flexible disk可折叠磁盘
Floppies磁盘
Floppy disk软盘
Floppy-disk cartridge磁盘盒
Formatting格式化
freedom of information act of 1970信息自由法案
frustrated受挫折
Full-plex communication全双通通信
G
General-purpose application通用运用程序
Gigahertz千兆赫
Graphic tablet绘图板
green pc绿色个人计算机
H
handheld computer手提电脑
Hard 硬拷贝
hard disk硬盘
hardware硬件
Help帮助
Host computer主机
Home page主页
Hyperlink超链接
hacker黑客
Half-plex communication半双通通信
Hard disk硬盘
Hard-disk cartridge硬盘盒
Hard-disk pack硬盘组
Head crash磁头碰撞
header标题
help desk specialist帮助办公专家
helper applications帮助软件
Hierarchical network层次型网络
history file历史文件
hits匹配记录
horizontal portal横向用户
hot site热战
Hybrid network混合网络
hyperlinks超连接
I
Image capturing device图像获取设备
information technology信息技术
Ink-jet printer墨水喷射印刷机
Integrated package综合性组件
Intelligent terminal智能终端设备
Intergrated circuit集成电路
Interface cards接口卡
Internal modem内部调制解调器
internet telephony网络电话
internet terminal互联网终端
Identification识别
i-drive网络硬盘驱动器
illusion of anonymity匿名幻想
index search索引搜索
information pushers信息推送器
initializing 初始化
instant messaging计时信息
internal hard disk内置硬盘
Internal modem内部调制解调器
Internet hard drive 网络硬盘驱动器
intranet企业内部网
J
joystick操纵杆
K
keyword search关键字搜索
L
laser printer激光打印机
Layout files版式文件
Light pen光笔
Locate定位
Logical operations逻辑运算
Lands凸面
Line of sight communication视影通信
Low bandwidth低带宽
lurking潜伏
M
Main board主板
Mark sensing标志检测
Mechanical mouse机械鼠标
Memory内存
Menu菜单
Menu bar菜单条
Microprocessor微处理器
Microseconds微秒
Modem card调制解调器
Monitor显示器
Motherboard主板
Mouse 鼠标
Multifunctional device多功能设备
Magnetic tape reels磁带卷
Magnetic tape streamers磁带条
mailing list邮件列表
Medium band媒质带宽
metasearch engine整合搜索引擎
Microwave微波
Modem解调器
Molation解调
由于不能写那么多只好到这了/
N
Net PC网络计算机
Network adapter card网卡
Network personal computer网络个人电脑
Network terminal 网络终端
Notebook computer笔记本电脑
Notebook system unit笔记本系统单元
Numeric entry数字输入
na?ve天真的人
national information infrastructure protection act of1996国际信息保护法案
national service provider全国性服务供应商
Network architecture网络体系结构
Network bridge网桥
Network gateway网关
network manager网络管理员
newsgroup新闻组
no electronic theft act of1997无电子盗窃法
Node节点
Nonvolatile storage非易失性存储
O
Object embedding对象嵌入
Object linking目标链接
Open architecture开放式体系结构
Optical disk光盘
Optical mouse光电鼠标
Optical scanner光电扫描仪
Outline大纲
off-line browsers离线浏览器
Online storage联机存储
P
palmtop computer掌上电脑
Parallel ports并行端口
Passive-matrix被动矩阵
PC card个人计算机卡
Personal laser printer个人激光打印机
Personal video recorder card个人视频记录卡
Photo printer照片打印机
Pixel像素
Platform scanner平版式扫描仪
Plotter绘图仪
Plug and play即插即用
Plug-in boards插件卡
Pointer指示器
Pointing stick指示棍
Port端口
Portable scanner便携式扫描仪
Presentation files演示文稿
Presentation graphics电子文稿程序
Primary storage主存
Proceres规程
Processor处理机
Programming control lanugage程序控制语言
Packets数据包
Parallel data transmission平行数据传输
Peer-to-peer network system得等网络系统
person-person auction site个人对个人拍卖站点
physical security物理安全
Pits凹面
plug-in插件程序
Polling轮询
privacy隐私权
proactive主动地
programmer程序员
Protocols协议
provider供应商
proxy server代理服务
pull procts推取程序
push procts推送程序
R
RAM cache随机高速缓冲器
Range范围
Record记录
Relational database关系数据库
Replace替换
Resolution分辨率
Row行
Read-only只读
Reformatting重组
regional service provider区域性服务供应商
repetitive motion injury反复性动作损伤
reverse directory反向目录
right to financial privacy act of 1979财产隐私法案
Ring network环形网络
S
Scanner扫描器
Search查找
Secondary storage device助存储设备
Semiconctor半导体
Serial ports串行端口
Server服务器
Shared laser printer共享激光打印机
Sheet表格
Silicon chip硅片
Slots插槽
Smart card智能卡
Soft 软拷贝
Software suite软件协议
Sorting排序分类
Source file源文件
Special-purpose application专用文件
Spreadsheet电子数据表
Standard toolbar标准工具栏
Supercomputer巨型机
System cabine 系统箱
System clock时钟
System software系统软件
Satellite/air connection services卫星无线连接服务
search engines搜索引擎
search providers搜索供应者
search services 搜索服务器
Sectors扇区
security安全
Sending and receiving devices发送接收设备
Sequential access顺序存取
Serial data transmission单向通信
signature line签名档
snoopware监控软件
software right act of1980软件版权法案
software piracy软件盗版
Solid-state storage固态存储器
specialized search engine专用搜索引擎
spiders网页爬虫
spike尖峰电压
Star network星型网
Strategy方案
subject主题
subscription address预定地址
Superdisk超级磁盘
surfing网上冲浪
surge protector浪涌保护器
systems analyst系统分析师
T
Table二维表
Telephony电话学
Television boards电视扩展卡
Terminal 终端
Template模板
Text entry文本输入
Thermal printer 热印刷
Thin client瘦客
Toggle key触发键
Toolbar工具栏
Touch screen触摸屏
Trackball追踪球
TV tuner card电视调谐卡
Two-state system双状态系统
technical writer技术协作者
technostress重压技术
telnet远程登录
Time-sharing system分时系统
Topology拓扑结构
Tracks磁道
traditional cookies传统的信息记录程序
Twisted pair双绞线
U
Unicode统一字符标准
uploading上传
usenet世界性新闻组网络
V
Virtual memory虚拟内存
Video display screen视频显示屏
Voice recognition system声音识别系统
vertical portal纵向门户
video privacy protection act of 1988视频隐私权保护法案
virus checker病毒检测程序
virus病毒
Voiceband音频带宽
Volatile storage易失性存储
voltage surge冲击性电压
W
Wand reader 条形码读入
Web 网络
Web appliance 环球网设备
Web page网页
Web site address网络地址
Web terminal环球网终端
Webcam摄像头
What-if analysis假定分析
Wireless revolution无线革命
Word字长
Word processing文字处理
Word wrap自动换行
Worksheet file 工作表文件
web auctions网上拍卖
web broadcasters网络广播
web portals门户网站
web sites网站
web storefront creation packages网上商店创建包
web storefronts网上商店
web utilities网上应用程序
web-downloading utilities网页下载应用程序
webmaster web站点管理员
web万维网
Wireless modems无线调制解调器
wireless service provider无线服务供应商
world wide web万维网
worm蠕虫病毒
Write-protect notch写保护口
其他缩写
DVD digital bersatile 数字化通用光盘
IT ingormation technology信息技术
CD compact disc 压缩盘
PDA personal digital assistant个人数字助理
RAM random access memory随机存储器
WWW World Wide Web 万维网
DBMS database management system数据库管理系统
HTML Hypertext Markup Language超文本标示语言
OLE object linking and embedding对象链接潜入
SQL structured query language结构化查询语言
URL uniform resouice locator统一资源定位器
AGP accelerated graphics port加速图形接口
ALU arithmetic-logic unit算术逻辑单元
CPU central processing unit中央处理器
CMOS complementary metal-oxide semiconctor互补金属氧化物半导体
CISC complex instruction set computer复杂指令集计算机
HPSB high performance serial bus高性能串行总线
ISA instry standard architecture工业标准结构体系
PCI peripheral component interconnect外部设备互连总线
PCMCIA Personal Memory Card International Association个人计算机存储卡国际协会
RAM random-access memory随机存储器
ROM read-only memory只读存储器
USB universal serial bus通用串行总线
CRT cathode-ray tube阴极射线管
HDTV high-definition television高清晰度电视
LCD liquid crystal display monitor液晶显示器
MICRmagnetic-ink character recognition磁墨水字符识别器
OCR optical-character recognition光电字符识别器
OMR optical-mark recognition光标阅读器
TFT thin film transistor monitor薄膜晶体管显示器
其他
Zip disk压缩磁盘
Domain name system(DNS)域名服务器
file transfer protocol(FTP)文件传送协议
hypertext markup language(HTML)超文本链接标识语言
Local area network(LAN)局域网
internet relay chat(IRC)互联网多线交谈
Metropolitan area network(MAN)城域网
Network operation system(NOS)网络操作系统
uniform resource locator(URL)统一资源定位器
Wide area network(WAN)广域网
3. 百度开心农场显示502 Bad Gateway该如何解决 请详细具体些.
服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。
这通常并不意味着上游服务器已关闭(无响应网关/代理) ,而是上游服务器和网关/代理不同意的协议交换数据。鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。
502错误的HTTP周期
任何客户端(如Web浏览器或我们的CheckUpDown机器人)经过下列循环时,沟通与您的Web服务器:
获取IP地址的IP名称您的网站(您的网站URL的领导’ http:// ‘ ) 。这查找(转换的知识产权名称, IP地址)所提供的域名服务器( DNSs ) 。
打开一个IP套接字连接到该IP地址。
写一个HTTP数据流通过该插座。
收到一个HTTP数据流从您的Web服务器的响应。此数据流包含状态码的值是由HTTP协议。解析此数据流的状态码和其他有用信息。
这个错误发生在最后一步时,上面的客户端收到一个HTTP状态码,它承认为502 ‘ 。
固定502错误-一般
这个问题是由于不良的IP之间的沟通后端计算机,可能包括在Web服务器上的网站您尝试访问。在分析这个问题,您应该清除浏览器缓存完全。
如果您在网上冲浪,看这个问题的所有网站您尝试访问,然后选择1 )你的ISP了重大设备故障/过载或2 )有问题的内部互联网连接如您的防火墙无法正常运作。在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。
如果您收到此问题只有部分网站您尝试访问那就很可能是一个问题,即这些网站之一,其设备未能/超载。联系的人在这些地点。
固定502错误- CheckUpDown
使用代理和缓存的增加在网络上。我们CheckUpDown机器人将总是试图’钻通过’的真正的计算机主机,实际上您的网站,但是我们并不拥有完全的控制,我们的HTTP请求实际上结束了。如果只有一个环节的计算机处理我们的HTTP请求被打破,然后一个错误,如502可以很容易地发生。
最近网站频繁出现502错误,简直无法正常运转,出现这种情况大多是php-cgi超时没有返回信息,或进程僵死等情况造成的,参考张宴的这篇关于502错误的解决办法(http://blog.s135.com/read.php?361),并咨询系统管理员高手,我们的nginx已经配置到极致这些都已经老早做过修改了,但现在又出然出现。
经过分析将nginx的error log打开,发现”pstream sent too big header while reading response header from upstream”这样的错误提示,查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。参考老外写的修改办法增加了缓冲区容量大小设置,502问题彻底解决,后来系统管理员又对参数做了调整只保留了2个设置参数:client head buffer,fastcgi buffer size。
参考:
http://www.sudone.com/nginx/nginx_400_bad_request.html
http://blog.rackcorp.com/?p=14
二、昨天装上nginx后在高负载的时候,论坛上传图片或者执行较长时间脚本的时候就不停的出现502 Bad Gateway ,网上搜了,大多数都是张大师的那篇解决方案,他的解决方案是
http
{
……
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
}
增加了fastcgi的相应请求时间。但是我在实际中碰到了这个问题,设置到500,还是会出现,只是比我设置120的时候要少一些。后来发现主要是在一些post或者数据库操作的时候出现这种情况,静态页面是不会出现的。
反复的查问题,调试,也加大了CGI的进程数。
128
256再加上去可能会变得很慢。占用内存大了。
在php-fpm.conf设置中还有一项,可能当时没注意到,无意中改了这个值。
request_terminate_timeout
这个值是max_execution_time,就是fast-cgi的执行脚本时间。
0s
0s为关闭,就是无限执行下去。(当时装的时候没仔细看就改了一个数字)
发现,问题解决了,执行很长时间也不会出错了。
优化fastcgi中,还可以改改这个值5s 。看看效果
终于发现502的错误其实不是nginx的问题,哈哈
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误
三、
一台服务器上运行着nginx php(fpm) xcache,访问量日均 300W pv左右
最近经常会出现这样的情况: php页面打开很慢,cpu使用率突然降至很低,系统负载突然升至很高,查看网卡的流量,也会发现突然降到了很低。这种情况只持续数秒钟就恢复了
检查php-fpm的日志文件发现了一些线索
Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200
Sep 30 08:32:23.290212 [NOTICE] fpm_sockets_init_main(), line 371: using inherited socket fd=10, “127.0.0.1:9000〃
Sep 30 08:32:23.290342 [NOTICE] fpm_event_init_main(), line 109: libevent: using epoll
Sep 30 08:32:23.296426 [NOTICE] fpm_init(), line 47: fpm is running, pid 30587
在这几句的前面,是1000多行的关闭children和开启children的日志
原来,php-fpm有一个参数 max_requests ,该参数指明了,每个children最多处理多少个请求后便会被关闭,默认的设置是500。因为php是把请求轮询给每个children,在大流量下,每个childre到达max_requests所用的时间都差不多,这样就造成所有的children基本上在同一时间被关闭。
在这期间,nginx无法将php文件转交给php-fpm处理,所以cpu会降至很低(不用处理php,更不用执行sql),而负载会升至很高(关闭和开启children、nginx等待php-fpm),网卡流量也降至很低(nginx无法生成数据传输给客户端)
解决问题很简单,增加children的数量,并且将 max_requests 设置未 0 或者一个比较大的值,重启php-fpm
四、
nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx身上,希望nginx下一个版本会把出错提示写稍微友好一些,至少不会是现在简单的一句502 Bad Gateway,另外还不忘附上自己的大名。
502错误最通常的出现情况就是后端主机当机,当然还有。在upstream配置里有这么一项配置:proxy_next_upstream,这个配置指定了nginx在从一个后端主机取数据遇到何种错误时会转到下一个后端主机,里头写上的就是会出现502的所有情况拉,默认是error timeout,error就是当机、断线之类的,timeout就是读取堵塞超时,比较容易理解
产生原因
服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 含义:这通常并不意味着上游服务器已关闭(无响应网关/代理) ,而是上游服务器和网关/代理不同意的协议交换数据。鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。
编辑本段502错误的HTTP周期
任何客户端(如Web浏览器或我们的CheckUpDown机器人)经过下列循环时,与您的Web服务器沟通: 获取您的网站IP地址的IP名称(您的网站URL的领导’ http:// ‘ ) 。这查找(转换的知识产权名称, IP地址)所提供的域名服务器( DNSs ) 。 打开一个IP套接字连接到该IP地址。 写一个HTTP数据流通过该插座。 从您的响应的Web服务器收到一个HTTP数据流。此数据流包含状态码的值是由HTTP协议。解析此数据流的状态码和其他有用信息。 这个错误发生在最后一步时,上面的客户端收到一个HTTP状态码,它确认为502 ‘ 。
编辑本段固定502错误
一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该完全清除浏览器缓存。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP出了重大设备故障/过载 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,就需您自己解决任何阻止您进入互联网的问题。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。
编辑本段固定502错误- CheckUpDown
在网络上使用代理和缓存增加。我们CheckUpDown机器将总是试图连接到的真正的计算机主机,实际上就是您访问的网站,但是我们并不能完全控制,我们的HTTP请求实际上结束了。如果只有一个环节的计算机处理我们的HTTP请求被打破,然后一个错误,如502可以很容易地发生。
关于502 bad gateway报错的解决办法
通俗解释一下 1.什么是502 bad gateway 报错 简单来说 502 是报错类型代码 bad gateway 错误的网关 2.产生错误的原因 连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错 3.解救的办法 最好的解决办法当然还是在服务器上做 对大家来说不太可能 那么我们有什么解救的方法呢? 说白了 很简单 就是——刷新(不是一般的刷新哦) 刷新的原理 :很多人可能不知道 刷新也是有两种的。 所谓刷新其实就是从服务器下载数据到本地的硬盘浏览器, 再从本地硬盘种读取数据到浏览器显示给我们看。 ①基本刷新:就是点击刷新或者使用F5快捷键 基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。 大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。 ②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad getway的页面现在又可以正常浏览了! 明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。 解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。 如果服务器能正常给予你响应你就可以看到页面了。
4. 用PHP 编写支持高并发的网站,需要做什么处理
一般来说,解决WEB高并发的有效手段都是采用可线性扩展的多层分布式架构,
我生产项目的架构是这样的,就在这里抛砖引玉一下。
Webserver (Nginx) :这一层是可以轻松分布式部署的,结合智能DNS解析可以简易地防止单点故障、实现区域访问加速,结合LVS很容易实现负载均衡。这一层主要是负责处理静态请求和转发PHP请求至第二层的PHP处理节点,至于静态资源地址(http://misc.xxxx.com)可以单独拿出来部署,或者直接使用商用的云存储服务(国内七牛不错,国外有Amazon S3)
PHP处理节点:一个节点其实就是一个监听特定端口的系统进程,webserver的请求通过负载均衡器(我用的AWS的loadbalancer)进行分发,很好实现分布式和负载均衡。我现在用的还是php自带的php-fpm,其实facebook出的hhvm性能非常强悍,但是还不能100%通过我项目的单元测试,等hhvm成熟过后可以平滑替换
高速缓存:用的memcached,这一层的作用主要是减轻数据库IO和加快热数据访问,缓存策略与程序耦合度较高,不赘述,但简单地说有两种方式,一种是在程序的全局层面加一个缓存处理,这种方法代码耦合度低,但是有效命中率不高,有些项目不一定适应,另一种是在具体的数据存取处加缓存处理,这种办法程序耦合度较高,但是缓存命中率非常高,几乎没有无效缓存存在,我用的是这种。
数据库 :我现在的项目数据规模不大,暂时只用了单台数据库,但是程序逻辑上已做好了数据库线性扩展的准备。其实数据库层的扩展是老生常谈了,常用手段是分库分表,这一块需要在前期的代码就打下基础,另外更平滑地手段是使用中间件,比如360的Atlas,阿里巴巴的cobar,淘宝的TDDL,中间件可以在不大范围变更代码的情况下扩展,但是具体的使用场景还是有限的,具体项目还需单独考察。
其他:根据不同的项目,架构还可以选择性地使用队列,我现在用的beantalkd,Redis也是一个很好的选择。队列常用的使用环境是邮件发送和站内消息推送上面,但是在某些场景下也可以作为核心数据库的缓冲,对应对大并发或者突发性流量也是不错的选择
5. 上网有时常常出现这个504 Gateway Time-out这是什么意思啊
504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。
是由于nginx默认的fastcgi进程响应缓冲区太小造成: 这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。
4、这样就能正常上网了。
6. 网页显示404notfound什么意思解决方法
网页显示404notfound什么意思解决方法
网页显示404notfound什么意思解决方法404notfound是页面未找到,返回404页面的意思。
404页面是客户端在浏览网页时,服务器无法正常提供资讯,或是服务器无法回应,且不知道原因所返回的页面。
404页面原因:
1、无法在所请求的端口上访问Web站点;
2、Web服务扩充套件锁定策略阻止本请求;
3、MIME对映策仿敏略阻止本请求。
404页面解决办法:
1、对于站点来讲,把缺少的网页档案恢复到正确的位置,重新设定网路服务;
2、对于使用者来讲,需要检查你所输入的网路地址是否正确。
404页面目的:
告诉浏览者其所请求的页面不存在或连结错误,同时引导使用者使用网站其他页面而不是关闭视窗离开。
开启网页显示404NotFound如何解决404notfound其实是一种标准的HTTP返回程式码,当用户输入一个连结时,服务器上的IIS(Inter资讯服务)会先检测使用者输入的地址连结是否有对应的网页资讯,当没有对应的网页资讯,就说明使用者输入的是一串无效的连结,这时IIS就会通过服务器向终端使用者传送404错误内码表提示,告知使用者找不到与该地址连结对应的网页资讯。
出现404notfound的原因有三种:
1、服务器上本来有页面已经被删除了,这种情况多发于论坛。例如使用者点选论坛上N年前的帖子,因为论坛为了保障服务器的资源合理运用,都会将过期或者非常久远的页面删除了。这时候就会出现404notfound。
2、使用者输入地址连结本来就有错误,导致IIS提示404notfound。
3、DNS设定阻止。国外有一些被禁网站在大陆浏览同样会出现404notfound的现象,需要使用代理服务器才可以正常浏览。
404notfound的提示页面只是为了提示告知使用者,而非故障现象,它能友好的提示使用者页面无法被访问。通常出现这种404notfound提示使用者换别的网页游览即可。
人人登入网页显示说404NotFound什么意思?故障程式码
404pagenotfound解决方法这是服务器返回给客户端的程式码404表示找不网页,这个你不要着急,反正不是你的问题,是腾讯QQ服务器的问题,过一段时间就会好的,他们会解决的。
求助网页显示混乱的解决方法。这是外挂的问题,你应开启控制面板,XP为新增删除程式,WIN7为程式和功能,找到adobeflashplay解除安装,如果有多个则应全部解除前迅安装,之后再次开启这些网站,会提示你安装这个程式,重新下载并安装即可。
不过我遇过一例,即使这样做也无法解决,只好重灌系统。
哦对了,可以换用非IE核心的浏览器例如火狐试试。
网页打不开,显示404NotFound——nginx/1.0.6,求解决办法。出现404notfound的原因有三种:
1、服务器上本来有页面已经被删除了,这种情况多发于论坛。例如使用者点选论坛上N年前的帖子,因为论坛为了保障服务器的资源合理运用,都会将过期或者非常久远的页面删除了。这时候就会出现404notfound。
2、使用者输入地址连结本来就有错误,导致IIS提示404notfound。
3、DNS设定阻止。国外有一些被禁网站在大陆浏览同样会出现404notfound的现象,需要使用代理服务器才可以正常浏览。
404notfound的提示页面只是为了提示告知使用者,而非故障现象,它能友好的提示使用者页面无法备悔枝被访问。通常出现这种404notfound提示使用者换别的网页游览即可。
首先哈这个很多时候网站出现问题,应该第一时间检视错误提示,找出具体是由什么原因造成的。在遇到这次事件之后,开启了错误日记记录,也找到了具体的原因!
错误日记记录了出现这样问题的提示:
[crit]
2626#0:*6405connect()tounix:/tmp/php-cgi-xxx-php5.3-7vps.sock
failed(2:Nosuchfileordirectory)whileconnectingtoupstream,
client:10*.11*.42.1*,server:chaodiquan.,request:"POST/xmlrpc.php
HTTP/1.1",upstream:
"fastcgi:unix:/tmp/php-cgi-xxx-php5.3-7vps.sock:",host:
"chaodiquan."
主要由于php-fpm配置不当造成的,以下是目前的配置
[vps-php5.3-7vps]
listen=/tmp/php-cgi-xxx-php5.3-7vps.sock
listen.group=
user=
group=
pm=static
pm.max_children=3
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3
rlimit_files=51200
这里先说一下涉及到这个的几个引数,他们分别是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
pm表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
下面4个引数的意思分别为:
pm.max_children:
静态方式下开启的php-fpm程序数量。pm.start_servers:动态方式下的起始php-fpm程序数量。
pm.min_spare_servers:动态方式下的最小php-fpm程序数量。pm.max_spare_servers:动态方式下的最大
php-fpm程序数量。
如果dm设定为static,那么其实只有pm.max_children这个引数生效。系统会开启设定数量的php-fpm程序。
如
果dm设定为dynamic,那么pm.max_children引数失效,后面3个引数生效。系统会在php-fpm执行开始的时候启动
pm.start_servers个php-fpm程序,然后根据系统的需求动态在pm.min_spare_servers和
pm.max_spare_servers之间调整php-fpm程序数。
我选择的是静态模式,而且pm.max_children程序
数设定的3个,非常的少,当自己把pm.max_children程序数进行调整之后目前来说没有出现类似的问题啦!修改
起来也非常的简单,在面板上编辑调整虚拟主机的php-fpm选项即可!
回头看你的问题哈这个问题是网站的事情而不是你本地的问题,这个是服务器的配置才会用到除非你是在本地进行搭建要不然你是用不到这些的希望可以帮助到你的哈
什么意思,解决方法储存空间不够了。将手机里面的照片,视讯什么的删掉一部分。还不行可以解除安装一些不用的软体。还不行买个大点的储存卡装进去。
跪求解决方法网页图片无法显示你的360IE有问题了
重新安装一下或则修复一下