Web站点环境是Centos 7,Nginx,PHP7,Mysql。
刚开始的时候思维一直局限于是服务器配置问题。
查看了下Nginx的虚拟主机配置,看了下发现没有问题。
用ping测试了下域名,数据也都有传到。
后面看了下Nginx的错误日志
82 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
发现错误日志,终于觉得有希望可以解决了。搜索了下这个错误的解决方案,大部分都是虚拟主机配置有问题,但是我的没有问题啊。思路就转移到了DNS上,看下下resolv.conf
,好像也没什么问题,但是不太放心,所以从同一个机房的另一台服务器复制了个过来,然后重启DNS,还是不行,看来思路还是错了。
由于我的域名是本地解析,所以不应该存在着备案的问题。解析了个备案在阿里云的外网域名去做测试,外网也还是不行。(这边思路是严重错误的)
后面无意中搜到一个大神的文章测试机域名不能访问ip却可以访问
认真看了两遍之后,灵光一闪,想到了备案的问题。
我原来配置的域名是随便配的
server {
listen 80;
server_name www.testtt.com; # 示例域名
}
想到了有没有可能是因为这域名没有在这个机房idc那边进行备案,所以本地解析也无法访问,由于之前做本地解析的项目都是有与项目关联的域名(都是有备案的),在本地开发的时候,域名是可以随便配置的,开心就好。所以始终没有意识到是备案的问题。后面把域名改成有在这个idc那备案的域名就可以访问了。
解决问题犯下的几个错误:
1. 在阿里备案的域名,在其它机房托管的服务器肯定是不能用的,那下脑抽了,拿那个域名去做测试
2. 域名DNS这块理解有问题,DNS的解析过程中,先从本地hosts找域名对应的ip,在平常开发的时候本地hosts和虚拟主机都在这边,所以域名随便配置都是可以访问的,但是本地解析远程服务器站点的时候,本地hosts找到对应的ip,所以ping 域名也是可以找到ip的,但是在使用浏览器用域名访问的时候,idc那边应该是有去过滤,是否在这边(idc)有备案过域名,没有就直接pass了