永发信息网

503 service unavailable怎么解决 apache

答案:2  悬赏:10  手机版
解决时间 2021-02-01 13:38
  • 提问者网友:蓝莓格格巫
  • 2021-02-01 02:57
503 service unavailable怎么解决 apache
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-02-01 04:03
首先我们得弄明白什么是503错误;503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Service Unavailable)是同属一种网页状态出错码。前者是服务器出错的一种返回状态,后者是网页程序没有相关结果后返回的一种状态,需要优化网站的时候通常须要制作404出错页已便网站整体优化。由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After起头用以标明这个延迟时间。如果没有给出这个 Retry-After信息,那么客户端应当以处理500(Server Internal Error)响应的方式处理它。 503
  注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。
  其次要弄明白503产生的原因;造成503错误主要有以下几种情况,
1、网络管理员可能关闭应用程序池以执行维护。
2、当请求到达时应用程序池队列已满。
3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组,
4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
全部回答
  • 1楼网友:渡鹤影
  • 2021-02-01 04:57
Apache ProxyPass 出现503 Service Temporarily Unavailable 的解决方案
今天在Redhat5 Linux上配置Apache和Tomcat整合,希望将Jsp页面的地址转发到tomcat的地址上去。
如真实的Jsp地址为 http://127.0.0.1:8080/jsp/
希望通过访问 http://127.0.0.1/jsp/ 也可以访问到。
于是在Apache中配置ProxyPass :
ProxyPass /jsp http://localhost:8080/jsp
但发现当访问的时候发现不可访问,出现503错误:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache Server at localhost Port 80
查看apache日志/var/log/httpd/error_log:
[Wed Aug 10 21:02:27 2011] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 10.140.0.109:7080 (127.0.0.1) failed
[Wed Aug 10 21:02:27 2011] [error] ap_proxy_connect_backend disabling worker for (10.140.0.109)
[Wed Aug 10 20:30:51 2011] [error] proxy: HTTP: disabled connection for (127.0.0.1)
日志/var/log/httpd/access_log:
127.0.0.1- - [10/Aug/2011:21:02:27 -0400] "GET /jsp/ HTTP/1.0" 503 401 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
经过查资料和分析怀疑是SELinux的原因,于是查看果然是:
[root@ logs]# /usr/sbin/getsebool -a |grep http_can_network_connect
httpd_can_network_connect --> off
于是尝试解决方案:
我们需要将httpd_can_network_connect设置为on:
[root@ logs]# /usr/sbin/getsebool -P httpd_can_network_connect=1
[root@ logs]# /usr/sbin/getsebool -a |grep http_can_network_connect
httpd_can_network_connect --> on
重新访问,页面果然可以访问了。
另外直接关掉SELinux也是可以解决这个问题的:
修改/etc/selinux/config 然后重启:
SELINUX=disabled
或者实时生效的方式:
[root@ var]# /usr/sbin/setenforce 0
附关于SELinux:
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux® 上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
getenforce/setenforce查看和设置SELinux的当前工作模式
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯