记一次tomcat故障排查(转)
问题来源
因为经常有各种各样的大小项目要跑,全部放一个tomcat很慢,所以俺平时喜欢新建80-89这10个tomcat,分别放不同的项目。以前还一直用的好好的,昨天突然发现87端口的tomcat怎么都访问不了,本来大不了换一个别的端口就了事,但是我觉得问题既然碰到了就要彻底排查,不然下次再碰到就又没辙了。
这个奇怪的问题纠结了我将近一天左右,记录下来是为了让后来人少走坑爹路。如果你想直接知道原因而不管我这没啥意义的排查过程,直接滚动到最后就可以了。

现象描述
tomcat能正常启动,也没提示什么端口冲突,但就是访问不了,要是页面提示个什么404啥的也还OK啦,但偏偏提示的是“网络连接错误”!这尼玛,真是灵异事件啊,然后就尝试着找原因。

打开浏览器只看到这样的页面:

排查
首先当然是试一下其它端口,发现86、88端口均正常,唯独87不正常,然后就查看端口占用情况,仔细对比不同端口启动时端口占用情况,开始还欣喜的以为发现问题了,因为其它端口启动时都至少有4个相关记录,唯独87端口只有3条,但后来仔细对比来对比去也没发现什么有用的价值,具体过程就不说了,反正就是没从这条路上找到原因,贴上一张并没有什么价值的对比图:

然后想,tomcat确实成启动了,只是浏览器不知为何访问不了而已,要不我telnet试试?然后就试试telnet localhost 87,发现也没问题啊,这说明端口确实被tomcat绑定了啊,可为啥就是访问不了呢?

然后我注意到上面查看端口占用时貌似唯独87端口没有类似127.0.0.1:87地址出现,那是不是直接用ip可以呢?但是http://172.16.4.97:87、http://localhost:87、http://127.0.0.1:87等都试了下还是不行。
再然后,是不是换别人的电脑可以呢?拿一台局域网内的另外PC试了下,还是不行(特别说明:用的是大数字安全浏览器)。
再想想,是不是eclipse里面出了什么问题呢?我就直接到外面跑一个tomcat绑定87端口试一下,还是不行!
那又是不是我的tomcat7出了问题呢?然后又换tomcat6绑定一个87端口,再试,还是不行!
我滴个妈呀,这到底是个什么鬼啊[抓狂][抓狂],真是快疯掉了!
重头戏来了
就在我一筹莫展的时候,就在一个小时以前,我说,要不我换个浏览器试试?总不会跟浏览器有关系吧?(回头想想我也不记得我是怎么想到的)
之前一直用的是“伟大的”大数字极速浏览器(为啥说伟大,后面你就懂了),我换了Chrome试了下,虽然也还是访问不了,但是发现了一个非常关键的错误信息:ERR_UNSAFE_PORT

你说啥?不安全的端口?咋个不安全了勒?我就郁闷了,顺手度娘了一下,果然发现有用信息了,貌似是浏览器做了手脚,没等我仔细看,我就迫不及待的多试了几个浏览器,试了下火狐,嘿嘿,火狐说的更直白一点:

此地址使用了一个通常用于网络浏览以外目的的端口。出于安全原因,Firefox 取消了该请求。这下总算明白了,可以十分确定就是浏览器做的手脚!再试了下IE,嘿嘿,我大IE这次竟然很听话,竟然没啥问题(难不成说我早用IE就好了?)。。。

总结
纠结了我这么久,原来罪魁祸首竟然是我大数字急速浏览器啊,由于Chrome一些限制,一直习惯直接把它当成chrome来用,毕竟内核更新也比较快,也没管其它太多,谁曾想,哎!不过好在问题原因总算找到了!
解决
啥?你以为这就完了?当然不是,找到问题原因了当然还要找到解决方法。
Chrome
开始菜单搜索“Chrome”,右键打开文件位置,选中的是一个快捷方式,右键属性,增加以下参数:
// 表示允许的端口,多个端口逗号分隔
--explicitly-allowed-ports=87,6666,556,6667
示例如下:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --explicitly-allowed-ports=87,6666,556
再启动,访问,发现没有问题了。

火狐
地址栏输入about:config,然后右键新建一个字符串键,名称为network.security.ports.banned.override,内容就是允许的端口,多个端口逗号分隔,如87,6666,556,然后确定,再试,OK了(貌似无需重启浏览器)。


IE
IE?IE没问题啊,还解决个球啊~~~
附录
Google Chrome 默认非安全端口列表,虽然以上方法可以解决问题,但还是尽量避免吧,谁想没事找麻烦啊:
1, // tcpmux
7, // echo
9, // discard
11, // systat
13, // daytime
15, // netstat
17, // qotd
19, // chargen
20, // ftp data
21, // ftp access
22, // ssh
23, // telnet
25, // smtp
37, // time
42, // name
43, // nicname
53, // domain
77, // priv-rjs
79, // finger
87, // ttylink
95, // supdup
101, // hostriame
102, // iso-tsap
103, // gppitnp
104, // acr-nema
109, // pop2
110, // pop3
111, // sunrpc
113, // auth
115, // sftp
117, // uucp-path
119, // nntp
123, // NTP
135, // loc-srv /epmap
139, // netbios
143, // imap2
179, // BGP
389, // ldap
465, // smtp+ssl
512, // print / exec
513, // login
514, // shell
515, // printer
526, // tempo
530, // courier
531, // chat
532, // netnews
540, // uucp
556, // remotefs
563, // nntp+ssl
587, // stmp?
601, // ??
636, // ldap+ssl
993, // ldap+ssl
995, // pop3+ssl
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
6000, // X11
6665, // Alternate IRC [Apple addition]
6666, // Alternate IRC [Apple addition]
6667, // Standard IRC [Apple addition]
6668, // Alternate IRC [Apple addition]
6669, // Alternate IRC [Apple addition]
http://www.cnblogs.com/liuxianan/p/err_unsafe_port.html
记一次tomcat故障排查(转)的更多相关文章
- 坑爹坑娘坑祖宗的87端口(记一次tomcat故障排查)
原贴如下 坑爹坑娘坑祖宗的87端口(记一次tomcat故障排查) 虽然我用的是PHPstudy部署的dedecms,还是一样栽倒这个坑里了. 总结经验:本地测试使用8000~9000的端口比较安全.
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825 1. 播放系统服务器方面的维护2 1.1. 默认情况下,已经在系统的启动目录下增加了俩个启动项目2 1.2. ...
- Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc
Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc 1. 服务器方面的维护1 1.1. 默认情况下,已经在系统的启动目录下增加了 个启动项目1 1.2. 后台服务.保 ...
- 解Bug之路-记一次存储故障的排查过程
解Bug之路-记一次存储故障的排查过程 高可用真是一丝细节都不得马虎.平时跑的好好的系统,在相应硬件出现故障时就会引发出潜在的Bug.偏偏这些故障在应用层的表现稀奇古怪,很难让人联想到是硬件出了问题, ...
- Java线上应用故障排查之二:高内存占用
搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java ...
- 一次线上OOM故障排查经过
转贴:http://my.oschina.net/flashsword/blog/205266 本文是一次线上OOM故障排查的经过,内容比较基础但是真实,主要是记录一下,没有OOM排查经验的同学也可以 ...
- ------ 新春第一炮:阶乘算法性能分析与 double fault 蓝屏故障排查 Part I ------
-------------------------------------------------------------------------- 春节期间闲来无事想研究下算法,上机测试代码却遇到了 ...
- java线上应用故障排查之二:高内存占用【转】
前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查. 搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGe ...
- 【JVM】线上应用故障排查
高CPU占用 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障. 通过ps aux ...
随机推荐
- HDU1028Ignatius and the Princess III母函数入门
这个题也能够用递归加记忆化搜索来A,只是因为这题比較简单,所以用来做母函数的入门题比較合适 以展开后的x4为例,其系数为4,即4拆分成1.2.3之和的拆分数为4: 即 :4=1+1+1+1=1+1+2 ...
- poj2348(博弈)
poj2348 给定两个数a,b,大的数能减少小的数的倍数,不能是的数小于0,谁先使得数等于0,谁就赢了 有三种情况 ① a % b ==0 这个状态是必胜的 ② a - b < b 这个状 ...
- 行为驱动开发(BDD)
行为驱动开发(BDD) 引言 BDD是对TDD理念的扩展.BDD强调有利害关系的技术团体和非技术团队都要参与到软件开发过程中.可以把它看成一种强调团体间合作的敏捷方法.大多数采用某种敏捷方法的团队最终 ...
- Spring MVC helloWorld中遇到的问题及解决办法
1.java.io.FileNotFoundException: Could not open ServletContext resource不能加载ServletContext的用法是配置到web. ...
- Apache Curator获得真正的
Apache Curator获得真正的 Curator它是Netflix一家公司来源Zookeeper顾客,与Zookeeper相比于提供本地客户端,Curator的抽象层次更高,简化了Zookeep ...
- Word001
C# Word 类库 2009-08-06 22:10 13470人阅读 评论(10) 收藏 举报 c#objectstring文档microsoftexcel using System;using ...
- With As 获取 id parentId 递归获取所有
Declare @Id Int Set @Id = 5; ---在此修改父节点 With RootNodeCTE(Id,ParentId) As ( Select Id,Paren ...
- proxy pattern 代理模式
常用的几种代理模式简要说明如下: (1) 远程代理(Remote Proxy):为一个位于不同的地址空间的对象提供一个本地的代理对象,这个不同的地址空间可以是在同一台主机中,也可是在另一台主机中,远 ...
- [Windows Phone] 地图覆叠层控制项(MapOverlay )
原文:[Windows Phone] 地图覆叠层控制项(MapOverlay ) 前言 当使用地图时,我们可能需要定位一些座标图示或是绘制一些文字线条,这时可以在地图上加上覆叠层进行绘制,在 Wind ...
- play framework2.5.
play framework2 的学习笔记 https://github.com/playframework/playframework https://github.com/playframewor ...