1、问题描述
采用linux+apache+mysql+php搭建网站,做为自己网站开发的测试服务器,我将不同网站从80端口开始部署,直到一个网站部署到87端口发生了事故。
由于这个网站比较简单,本来放到87端口后,采用360极速浏览器访问测试了一下,完全没有问题,于是就没有再做其他浏览器测试,直到后来有一天公司发了一台mac,试想着用Safari浏览器访问看看自己以前的网站访问情况,才发现其他网站没问题,就是放在87端口的网站不能访问。于是马上用手机UC浏览器测试了,能访问,但是一刷新又不能访问。紧接着用谷歌浏览器,IE浏览器都不能访问。但是用自己windows(mac装不了360浏览器)上的360极速浏览器确实是又能访问的。
问题总结如下:由于刚开始并不知道是87端口问题,现在只知道我的网站只能被某些浏览器访问,手机浏览器能第一次访问刷新后不能访问,微信浏览器不能访问。
2、问题排查
尝试一:我使用的php的laravel框架做的网站,由于里面的Vendor目录和Storage目录需要有读写权限,于是我猜想是否我权限没有给够,果断的chmod -R 777 xxx给了权限。结果没效果,不是这个问题。
尝试二:我猜想,会不会路由有问题(其实不应该,不然为何有的浏览器能访问),于是更改路由,改了个名字。结果不是这个问题,而且360浏览器换个路由照样能访问,说明之前的访问结果也不是浏览器缓存。
尝试三:我已经有点怀疑端口的问题了,我将apache中http-vhots.conf将87端口指向了新写的一个测试页面,一个单页面。再次访问还是同样的360浏览器可以访问成功,其他浏览器不行。于是就开始往端口方向排查。
尝试四:查看apache日志文件,日志文件在apache安装目录下/usr/local/apache/logs下,可以用cat查看,也可以用tail -n 20 filename查看最后20行。我发现日志中出现了问题:
我的87端口的网站是被访问成功过的,返回的状态200,我的网站的图片也被访问到了。没有显示与87端口有用的错误信息。
这说明什么呢?
我明明用谷歌,safari,手机浏览器访问过却访问不到啊,为什么没有任何状态信息。(其实后来才知道浏览器识别87没不安全端口,已经在浏览器端就阻止了访问,更本没有到我的服务器,那当然没有任何日志输出了)
仔细看了谷歌浏览器控制台,还有360浏览器控制台也没有有用信息。但是,发现谷歌浏览器页面显示了ERR_UNSAFE_PORT字样,于是才知道果然是端口问题。
3、网上看到的解决办法
找到Chrome的快捷方式,右键-属性-目标,在chrome.exe后面添加指定允许的端口号:--explicitly-allowed-ports=87,6666,556,6667
终极解决方案:通过改浏览器的配置项让87端口能被访问,其实没有什么可行性,治标不治本。你的能访问了,发布出去,其他人也看不到啊。所以87端口是已经被定义成了预留端口,那么改成其他端口吧!!!
附录: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]