域名绑定与ip地址访问是不是无本质区别


之前注册了一个VPS,并在上面搭建了相应的LNMP环境(一键安装包),随后搭建了WordPress。
直接通过IP地址访问,访问的是类似“LNMP安装成功”的页面。
随后注册了一个域名,将域名和IP地址绑定之后,成功通过注册的域名访问WordPress搭建的个人博客。

我的疑问是 ,据我所知,域名不过是通过DNS服务器转换为相应的IP地址,那么 我访问这个域名和VPS的IP地址是一样的 ,对吗?但是事实并非如此,IP地址还是那个“LNMP安装成功”,而域名访问的是博客地址,这是为什么?
【简而言之,假设绑定a.com和1.1.1.1,那么通过web浏览器访问这两个地址不应该是别无二致的吗】

其次,我们在地址栏输入一个IP地址,事实上是默认访问了80端口而已,只是隐藏了,是这样吗?
麻烦了!

计算机网络 网络 dns

莱茵的黄金 8 years, 8 months ago

1、出现域名和IP访问的结果不一样,原因是你的 Web 服务器 Nginx 里的配置,具体你看一下 nginx.conf 里的配置
2、的确是的,就是 80 端口,只不过不显示而已,你使用 域名或ip:80 的方式,照样可以访问。

碎落的街灯 answered 8 years, 8 months ago

当你使用 域名 去访问一个网站的时候, HTTP请求头 中的 Host 字段的值为 你所填写的域名.
当你直接使用这个域名解析出来的 IP地址 , 去访问这个网站的时候, HTTP请求头 中的 Host 字段的值为 IP地址.


 GET / HTTP/1.1
Host: localhost


GET / HTTP/1.1
Host: 127.0.0.1

这个是在 HTTP请求头 上的区别, 在浏览器发请求之前, 如果是域名需要先解析域名得到IP然后才建立连接, 如果是IP, 则直接就可以建立连接.

当请求到达 Web服务器 的时候, 服务器会根据你的 HTTP请求头 Host 字段中的内容去匹配相应的配置, 比如你提交的是 域名, 而且 配置项里有这一个域名的配置, 那么它就会根据这个配置去进行处理(比如展示你的博客).

当提交的 Host 的内容在配置项里没有的时候, 在这种情况下, 一般服务器里会有一个默认配置项, 服务器展示这个默认配置项所对应的内容(即你所描述的那个 “LNMP安装成功”).

你问的 "其次" 的那个问题的答案是: 是的 , 如果是用的 HTTP协议 则默认端口为 80 , 如果是 HTTPS协议 则默认端口为 443 .

从前有只猫 answered 8 years, 8 months ago

Your Answer