Chrome 解析DNS出错,这个错误比较罕见,甚至说有点奇特。今天在使用Apache配置虚拟主机时,出现了一个非常奇怪的现象。我按照配置的步骤配置虚拟主机,如下

配置虚拟主机的步骤如下:

1. 启用  httpd-vhosts.conf

在 httpd.conf 文件中

# Virtual hosts ,虚拟主机

Include conf/extra/httpd-vhosts.conf

2. 在httpd-vhosts.conf文件中做配置

#配置我们自己的虚拟主机

<VirtualHost 127.0.0.1:80>

DocumentRoot "d:/myblog"

#这里配置欢迎首页面

DirectoryIndex index.html index.htm index.php

<Directory />

Options FollowSymLinks

#不许可别人修改我们的页面

AllowOverride None

#设置访问权限

Order allow,deny

Allow from all

//由于版本更新,所以这个语句不能再使用,Apache2.4需要使用Require all granted

</Directory>

</VirtualHost>

3.修改hosts 文件

.127.0.0.1            localhost

但是很遗憾的是,我调试的浏览器是Chrome,这就使得我刚开始解决问题时就出现错误的方向,我刚开始认为是自己的配置错误,所以一直在尝试,但是最后都没有发现问题,Chrome浏览器停留在这个页面。(这个页面就是Apache的默认页面,而不是虚拟主机中的页面)

后来,我觉得会不会是hosts文件出错呢?所以我尝试使用IP:http://127.0.0.1/访问,让我惊讶的是,这时候访问成功了。

所以我决定问题就出现在localhost与IP:http://127.0.0.1/之间,找到问题的发生点,然后我在百度搜索出来的结果如下
1、localhost也叫local ,正确的解释是:本地服务器
 
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
 
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
 
2、localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
 
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
本机IP 也是通过网卡传输的,依赖网卡,并受到网络防火墙和网卡相关的限制。
但是本机IP与127.0.0.1的区别是:
 
127.0.0.1 只能通过本机访问
本机IP 通过本机访问也能通过外部访问
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
但是即使找到这些区别我也没法解决这个问题啊,因为我的配置在网上的资料中是正确的。那么,我觉得最关键的可能就是Apache的版本问题,但是搜索后也没有出现这种情况。
这时候只剩下最后一种可能,那就是浏览器有问题,于是,我用了搜狗浏览器去访问。结果显示正常,终于知道问题在哪里了。就是Chrome浏览器出了问题。

确定问题来源后,我再次在百度查找答案,不过我找不到答案。我觉得主要原因可能是因为比较少人使用,而且不是主流,所以碰到这种问题比较少。所以只好FQ出去,到谷歌找答案。
原来问题的关键在于dns的解析上,不过我真的很笨,dns就是浏览器解析的啊,肯定是浏览器出现了问题。
我把问题的解决方法告诉大家:
down voteaccepted

方法一:1Clear up the Chrome's DNS cache by typing this in the Chrome browser

  • chrome://net-internals/#dns

Screenshot -> Flushing Chrome DNS cache

  • You will see a button "Clear Host Cache". Press that DNS cache will be flushed.

  • Keep this DNS window open. Now access the virtual host in the browser for me it was http:/api.localhost. Once you do that you will see a new entry in the DNS window. for me it was "localhost." notice the period "." at the end of localhost that showed an error.

  • Last step is to simply add this entry as

    127.0.0.1 localhost.

    in the hosts file located at for ubuntu : /etc/hosts

    for windows : C:\Windows\System32\drivers\etc\hosts

方法二:Another solution could be to ditch the .localhost /.dev at the end of your local virtual host domain

This has to do with some new changes by google. ".dev" and ".local" comes under google's TLD (In the corner of the internet where people care about DNS, there is a bit of an uproar at Google's application for over a hundred new top-level domains, including .dev etc)

Use a domain name you own. Possibly using the full name like "localhost.dev.$yourdomain" could help here on the setup.

原来,谷歌浏览器升级之后,对DNS的解析产生了新的规则,如.localhost/.dev都属于 google's TLD 中的一种了,所以,再也不能使用谷歌浏览器通过localhost访问本地了。不过上述的方法一我在测试后发现还是不可行,猜测原因是随着更高版本的升级,对DNS的解析更加严格了。所以在这里还是推荐使用方法二,也就是把localhost改为localhost.dev.$yourdomain"或者其他(只要不出现”.localhost“就可以了)。当然,这个需要在 windows : C:\Windows\System32\drivers\etc\hosts中配置。
所以到这里,问题就完美解决了。
在这里再次提醒自己,遇到问题不要慌,深入分析问题,分析出问题属于哪一类的问题,使用便于搜索的词语描绘这个错误,在搜索引擎中搜索相应的解决办法,如果还是解决不了,到谷歌上去搜,如果还是解决不了,可以到论坛上面发问,这样,一般都不会出现解决不了的问题。stack overflow真的是一个好地方,我有很多问题都在这里找到解决的方法。

Apache配置完虚拟主机后,使用Chrome访问localhost还是默认目录htdocs的更多相关文章

  1. Apache配置虚拟主机后,不能访问localhost的问题

    今天想试用一下php7,但是发现php7只支持Apache2.4版本,而我电脑上的Apache是2.2版本,为了想尝鲜,就必须去下载新的Apache2.4 php7和apache2.4安装整合以后,l ...

  2. Linux配置虚拟主机后,只能访问到主页怎么办?

    Linux配置虚拟主机后,只能访问到主页怎么办? 今天配置了lamp后,添加了一个虚拟主机,配置http.conf后,增加虚拟主机,测试访问发现只有域名下能访问,ljt.com但是域名下所有的都访问不 ...

  3. PHP中级篇 Apache配置httpd-vhosts虚拟主机总结及注意事项[OK]

    经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http ...

  4. PHP中级篇 Apache配置httpd-vhosts虚拟主机总结及注意事项

    经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http ...

  5. wamp配置apache虚拟主机支持多域名访问localhost

    1.背景: 在进行网站开发的时候,通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站.不过随着开发项目的增多,需要每次先访问localhost然后再选项目,显得 ...

  6. centos5.5用phpstudy一键安装配置虚拟主机后,yum配置代理服务器squid

    最近因为工作需要,开发站点需要在lamp环境下跑网站,于是在win7上跑虚拟机装了一个centos5.5的linux 并用集成环境配置了一个lamp环境,这里用的是phpstudy的一键安装包,并配置 ...

  7. apache配置虚拟主机后,启动速度慢

    apache配置虚拟主机后,启动速度慢且提示“the requested operation has failed” 可以通过在cmd下启动,来查找问题(命令中的“apache2.2”,是服务名,根据 ...

  8. Apache配置虚拟主机后让其他电脑访问

    关于Apache配置虚拟主机后在局域网中让其他电脑访问 #test1# NameVirtualHost *:80         ServerName  www.t1.com     Document ...

  9. 关于Apache配置虚拟主机后在局域网中让其他电脑访问

    #-----------adxssp------------# NameVirtualHost *:80 <VirtualHost *:80> ServerName www.b.com D ...

随机推荐

  1. Poj 3468-A Simple Problem with Integers 线段树,树状数组

    题目:http://poj.org/problem?id=3468   A Simple Problem with Integers Time Limit: 5000MS   Memory Limit ...

  2. Border - SGU 133(排序)

    题目大意:有N对区间现在剔除一些区间,这些区间被另一些区间完全包含,如,Ai<Bi, Bj<Aj, A完全包含B,求出来这样被包含的区间个数. 分析:首先按照第一个数字先进行一下排序,然后 ...

  3. c#基础语言编程-异常处理

    异常的定义 异常就是程序中的运行时错误,当出现异常时,系统会捕获这个错误并抛出一个异常.若程序没有提供处理该异常的代码,系统会挂起这个程序. 常见异常的类型 System.Exception 最泛化的 ...

  4. python小程序——购物

    流程图  代码程序 saving = int(input('请输入你的工资:'))shopping = [['iphone',5800],['mx6',2000],['pythonbook',80], ...

  5. JSNI GWT中的东东

    二.JavaScript Native InterfaceJavaScript本地接口JSNI.1)声明一个本地方法在JSNI中声明一个本地方法时,使用Java的标准native关键字,就像在JNI( ...

  6. AlphaDict 软件公布

    今天 Release 了 1.1. 主要是移植到了 window 平台, 无须安装,直接执行. 对 UI 又一次进行了设计,应该比之前好看多了. 加入了 生词本 功能,方便 学习外语. ------- ...

  7. 《31天成为IT服务达人》之精准运维

     1       第十四章精准运维服务 近年来国内IT产业的发展格局始终与我国的经济转型与创新创业的社会大潮息息相关,纵观国内国际形势,IT产业仍是创新的领头者,是解决人类各种经济危机的主要扮演者 ...

  8. Qt 学习之路:Graphics View Framework

    Graphics View 提供了一种接口,用于管理大量自定义的 2D 图形元素,并与之进行交互:还提供了用于将这些元素进行可视化显示的观察组件,并支持缩放和旋转.我们通常所说的 Linux 的 KD ...

  9. Java基础知识强化之集合框架笔记15:List集合的特点

    1. List集合的特点 List本身也是一个接口,如下: public interface List<E> extends Collection<E> (1)List是有序的 ...

  10. Ant学习笔记(2) 在Eclipse中使用Ant

    Eclipse默认提供了对Ant的支持,在Eclipse中不需要安装任何插件就能直接编辑和运行Ant.Eclipse中包含了一个Ant脚本编辑器,Ant脚本编辑器提供了对Ant脚本的语法搞来高亮.自动 ...