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. Ethernet & IEEE 802.3 802.X 802.1ag-MEP

    ISO/IEC 7498标准,它定义了网络互联的7层框架,也就是开放式系统互连参考模型(OSI模型). 交换机好比是邻近的街道,而路由器则是街道的交汇点. (交换机第二层,即数据链路层,也有四层,七层 ...

  2. [git] git 的基本认知

    版本管理 ( Version Control ) 版本管理系统是一个记录文件变更的系统,让你在一段时间后可以恢复指定版本的文件.版本管理系统大致可分为三类:独立的本地版本管理系统.中心化版本管理系统. ...

  3. 图形变幻矩阵 Transforms

    https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d ...

  4. x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1

    文章文件夹: x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1 x264 编码器选项分析 (x264 Codec Strong and Weak P ...

  5. strace使用详解(转) 分类: shell ubuntu 2014-11-27 17:48 134人阅读 评论(0) 收藏

    (一) strace 命令    用途:打印 STREAMS 跟踪消息. 语法:strace [ mid sid level ] ... 描述:没有参数的 strace 命令将所有的驱动程序和模块中的 ...

  6. Netty4具体解释二:开发第一个Netty应用程序

        既然是入门,那我们就在这里写一个简单的Demo,client发送一个字符串到server端,server端接收字符串后再发送回client. 2.1.配置开发环境 1.安装JDK 2.去官网下 ...

  7. common-lang——StringUtils

    1.文字省略处理 最多显示几个字 StringUtils.abbreviate("中华人民共和国", 5); // output:中华.. 2.文字中间省略 最多显示几个字符 St ...

  8. SQLCLR

    hsrzyn SQLCLR   什么是SQLCLR SQL CLR (SQL Common Language Runtime) 是自 SQL Server 2005 才出现的新功能,它将.NET Fr ...

  9. 一致性哈希(Consistent Hash)

    http://blog.csdn.net/cywosp/article/details/23397179/ http://www.codeproject.com/Articles/56138/Cons ...

  10. Linux chmod

    在Linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做. 语法如下: chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为 u 表示 ...