常见服务器返回码解决方案

时间:2024-02-26 09:56:24

一、200

定义:服务器已成功处理了请求;
解决:此返回码是访问成功的表现,不需解决。

二、301

定义:请求的网页已被永久重定向到新地址。
解决:
1、一般301设置,会在网页头部代码有所表现,代码类似:header(\'HTTP/1.1 301 Moved 
Permanently\');,只要在所有被重定向的网页上删除即可。
2、linux的虚拟主机Apache的服务器,并且支持.htaccess 这个文件,很多时候301都会写在里面,删除即可。如:
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^baidu.com [nc]
rewriterule ^(.*)$ http://www.baidu.com/$1 [r=301,nc]
3、window的虚拟主机IIS的服务器,在httpd.ini文件里删除类似以下的代码
RewriteCond Host:^AAA\.com$
RewriteRule (.*) http\://www\.AAA\.com$1 [R,I]

三、400

定义:你访问的页面域名不存在或者请求错误;
解决:
主要有两种形式:
1、bad request意思是“错误的请求";
2、invalid hostname意思是"不存在的域名”。
首先先Ping一下域名,看看是否解析到空间所在的IP,如果是,再去空间的管理面板看有没有绑定你的域名了,如果有,就可以肯定是空间提供商的问题了,解决这个问题就只能找空间提供商绑定你的域名了,如果自己有这个权限自己绑定域名就可以解决问题。

四、403

定义:资源不可用,网站访问过程中,常见的错误提示。通常由于服务器上文件或目录的权限设置导致的WEB访问错误。
解决
1、重建dns缓存
对于一些常规的403 forbidden错误,马海祥建议大家首先要尝试的就是重建dns缓存,在运行中输入cmd,然后输入ipconfig /flushdns即可。如果不行的话,就需要在hosts文件里把主页解析一下了。
同时,查看是否在网站虚拟目录中添加默认文档,一般默认文档为:index.html;index.asp;index.php;index.jsp;default.htm;default.asp等。
 
2、修改文件夹安全属性
用以下命令修改文件夹安全属性
chcon -R -t httpd_user_content_t public_html/
所用命令解析:
ls -Z -d public_html/
  #显示文件/目录的安全语境-Z, --context
  Display  security context so it fits on most displays.  Displays only mode, user, group, security context and file name.-d, --directory
  list directory entries instead of contents, and do not dereference symbolic links
  chcon -R -t httpd_user_content_t public_html/
  #修改文件/目录的安全语境-R, --recursive
  change files and directories recursively-t, --type
set type TYPE in the target security context
 
3、关于apache导致的403 forbidden错误的解决办法
打开apache的配置文件httpd.conf,找到这段代码:
Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all
有时候由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。
Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Allow from all
之所以会出现错误,是因为大多数的国外主机在配置Apache的时候启用了mod_security,也就是开启了安全检查,如果提交的信息中包含select , % , bin等关键字,Apache就会禁止,并给出403,404,500等错误。

五、404

404错误页面
 
定义:错误页面或不存在页面,服务器无法找到请求的网页。
解决
1、找回被删除的页面,并恢复原来的链接;
2、设置404错误页面,引导用户访问网站其他内容;

六、500

含义:内部服务器错误,服务器遇到错误,无法完成请求;
解决
1、.htaccess代码的问题。可以修改.htaccess文件的文件名试试能否访问,如果问题解决在逐行查看.htaccess文件是否有语法错误。  
2、文件权限问题。 查看文件权限是否为755若不是手动修改权限。 

七、502

含义:服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
解决:
 
1:php-cgi进程数不够用
vim  php-fpm.conf
  修改其中的2个参数,如下:
(1)在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加,这个数值是不确定的,需要我们自己算的,这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少,减小出现502错误的机率。
 
    一般来说,一台服务器的正常情况下每一个php-cgi要耗费的内存为20M左右。如果我就将此值设为80,那么也就是说大概要耗费服务器1600M内存。
 
    查看一下当前系统中有多少个php-cgi进程在运行:
        netstat  -anpo  |  grep  php-cgi  |  wc -l      
如果这个值接近你的在配置文件里面设置的值,说明需要增加。
注:这要根据机器的实际情况而定,每个机器的硬件设施和环境不一样。
参数为:<value name=”max_children”>80<alue>
 
(2)另外一个参数就是php-cgi脚本的执行时间  
<value name=”request_terminate_timeout”>0s<alue>这里写0s的意思是让php-cgi一直执行下去,没有时间限制。
 
注意:如果你做不到这一点,也就 是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其他的原因导致你的PHP-CGI假死那么就建议你给 request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分 钟都可以。
修改完这两个参数,重启一下php-cgi,看是否还出现502错误。
 
2: php执行时间长
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300
重启一下php-cgi,看是否还出现502错误。
 
3: php-cgi进程死掉
杀死其进程,重启php-cgi。

八、503

含义:服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个 Retry-After头。
出现503有两个原因:
1、该站点正在被攻击。
2、程序占用线程过多,导致把所有线程全部填满。
解决:
1.验证是否已为虚拟服务器配置应用程序池。默认应用程序池是MSSharePointPortalAppPool。
请按照下列步骤来确定虚拟服务器正在使用的应用程序池。
a.单击“开始”,指向“管理工具”,然后单击“Internet信息服务(IIS)管理器”。
b.展开“ServerName”,展开“Web站点”,右键单击虚拟服务器,然后单击“属性”。
c.单击“主目录”选项卡。为虚拟服务器配置的应用程序池列在“应用程序池”框中。
d.单击“确定”。
2、验证应用程序池帐户使用的密码是否正确。IIS不会自动轮询ActiveDirectory目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文“症状”部分所描述的错误信息。
3、验证应用程序池帐户是服务器上的IIS_WPG组和STS_WPG组的成员。
4、重新启动IIS以回收应用程序池。

九、504

含义:504错误是(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。正常情况下,是由于被请求服务器发送超时引起。
解决:这个问题完全是由后端电脑之间 IP 通讯缓慢而产生,可能包括您的 Web 服务器。 检查在其控制下的不同电脑之间的 IP 数据传输的流通状况。 然而,这个错误不易解决, 由于互联网流通的无规律性,这种类型的错误是瞬态的。

 

原创文章,作者:巨策网络   常见服务器返回码解决方案 http://www.cqjuce.comhttp://www.cqjuce.com/seo_news/58.html