一次官网打不开的经历

今天有人反映官网在登陆的时候,chrome浏览器不能正常打开页面,反而会出现一个下载框。我使用IE浏览器尝试登录官网,页面也不是正常的页面,而是下面的内容:
paradin

由于官网的域名跳转是在阿里云的域名解析的地方配置的,于是就登陆到阿里云的域名解析地方,查看了一下发现,这里的配置是www.lechange.com会302跳转到home.lechange.com,而ping一下home.lechange.com得到的ip地址是一个负载均衡的地址,然后在阿里云的控制台查询这个负载均衡的情况,发现这个负载均衡后面挂载的是两台服务器A和B。

于是我在浏览器里面直接输入负载均衡的ip地址,发现还是像上面那样错误的php界面,而浏览器地址栏使用两个服务器的外网ip却是正常可以打开的。这个时候初步怀疑是SLB的问题,而我当时就觉得就凭上面这一点就去跟阿里撕逼不太妥当,但是事实告诉我们事情不是那么简单的。

我检查一下slb的端口配置情况,分别是http 80转8080https 443转80,可见这个网站有两个协议,一个是http的而一个是https的,我们刚才虽然在浏览器里直接使用A和B的外网ip访问是可以正常打开页面,只能说明http协议是OK的,我们还要测试一下https协议访问的效果。

我就在浏览器地址栏里进一步尝试,发现使用A外网ip:8080访问是OK的,而使用B外网ip:8080访问就是PHP的文字界面。于是基本问题定位到B服务器里有文件的配置错误。

登陆到B服务器里,在nginx的conf文件夹里发现一个多余的文件,打开内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server 
{
listen 8080;
server_name www.lechange.com (file://www.lechange.com/) www.lechangebuy.com (file://www.lechangebuy.com/);
index index.html index.htm index.php;
root /data/www/ecstore;
add_header pos 'web2';
# location / {
# rewrite ^/(.*)$ https://www.lechangebuy.com/$1;
# }
location /public {
root /data/www/ecstore;
}
access_log /data/logs/nginx/access.log;
#access_log off;
}

而原来nginx是有正常的conf文件,现在又多余了一个这个文件,可见是因为没有无法正常解析.php的文件,两个文件都在占用8080端口时出现了冲突,所以就导致这样php download界面的情况。删除这个多余的文件后,重启nginx,清除浏览器缓存,再重新尝试就正常打开页面了。

为什么会多一个这样的文件,后来把各位运维人员严刑拷打一顿才知道,原来有一次某运维小弟在B服务器里面做跳转的测试,测试完毕之后忘记了把这个多余的文件删除,原本这一切是没有问题的,但是可能服务器nginx经历了重启,于是就加载了这两个conf文件,就把这个隐藏的问题暴露了。

-------------This article is over!Thanks for reading!-------------
感谢您请我喝咖啡!(o´ω`o)
0%