今天在对tomcat的host容器(即虚拟主机的配置)进行配置时,发现即使修改了host name的值(默认为localhost),但是仍无法访问web项目的问题(提示域名解析出错)。只能使用默认的值local host进行访问。
如上图,即使将host修改为ui,但仍只能通过locahost访问
无法通过ui进行访问
后来发现还要修改window下的hosts文件进行ip地址到域名的映射,才能访问。
具体方法是在hosts文件中增加一行(127.0.01->ui)的映射。
hosts具体的文件地址在C:\Windows\System32\drivers\etc文件夹下,并且需要使用管理员身份打开。
最后解释一下原理吧。无论是localhost还是自己配置的host虚拟主机名(如我自己配置的ui),在浏览器看来都是一个域名,那么域名都是需要进行DNS解析的。但是我们自己配置的域名在DNS服务器是没有的,因为我们没有注册,因此虽然我们在tomcat中进行了配置,但在网络上是没有我们的域名的。我们需要在本地进行配置,而hosts文件正是起到了这样的作用。当用户在浏览器中输入一个URL地址时,系统会首先自动从Hosts文件中寻找对应的域名映射的IP地址,一旦找到,浏览器会立即向该ip地址发送http请求报文。如果没有找到,则浏览器会向本地DNS服务器请求IP地址解析(如果本地DNS服务器无法解析,则会向根DNS服务器请求.....具体的DNS解析就不多说了总之DNS解析是一个递归的过程)。如果我们在本地没有对hosts进行配置,当然网络上也不会有我们的域名,于是浏览器只能提示域名解析错误了。当我们在本地进行配置后,浏览器就可以访问啦!只不过浏览器会在地址栏提示域名重定向。
在本地配置hosts的方式也是提高快速打开网页的方法!