打开网站出现Internal server error 500错误,通常是服务端出现一些未知异常,但是在检查的时候我们不能仅仅只是关注应用服务,而是要关注从服务端接收请求开始,一直到应用服务的整条链路。
程序文件中的权限问题导致Internal Server Error的解决方法
访问网站提示“Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request”
解决方法:登陆FTP或文件管理器,检查站点目录文件权限设置,将文件夹权限设置为755,单个文件权限设置为644。
这样设置644后,问题就可以解决,同时也不会影响网站的所需要的写入权限,满足网站正常运行。如果你的站点中有很多权限都要需要设置,为了提高效率。
程序应用问题导致Internal Server Error的解决方法
因为不同网站使用的程序代码都不竞相同,解决方案也不会完全一样,下面通过排查办法提供通用的解决思路:由于应用逻辑问题导致错误的可能性很小,那么第二个原因的嫌疑最大,就是mark逻辑问题。如果直接排查mark的源码,太费时费力,这个时候最好的办法是实时抓包,看看mark和应用服务之间到底发生了什么。
使用tcpdump命令抓取从jetty到应用服务之间的数据包,将结果输出到临时文件中:
tcpdump -i eth0:0 -s0 host 1X.XXX.XXX.XX -w /tmp/out1.cap
jetty对于请求数据的大小会做限制,超过200000 byte的时候就会报错,返回错误码500。
找到问题了,在WEB-INF目录下添加jetty-web.xml 文件解决,文件内容如下:
<Configure id="WebAppContext"class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="maxFormContentSize"type="int"> 0 </Set>