描述:
之前注册了一个VPS,并在上面搭建了相应的LNMP环境(一键安装包),随后搭建了WordPress。
直接通过IP地址访问,访问的是类似“LNMP安装成功”的页面。
随后注册了一个域名,将域名和IP地址绑定之后,成功通过注册的域名访问WordPress搭建的个人博客。
我的疑问是,据我所知,域名不过是通过DNS服务器转换为相应的IP地址,那么我访问这个域名和VPS的IP地址是一样的,对吗?但是事实并非如此,IP地址还是那个“LNMP安装成功”,而域名访问的是博客地址,这是为什么?
【简而言之,假设绑定a.com和1.1.1.1,那么通过web浏览器访问这两个地址不应该是别无二致的吗】
其次,我们在地址栏输入一个IP地址,事实上是默认访问了80端口而已,只是隐藏了,是这样吗?
麻烦了!
解决方案1:
1、出现域名和IP访问的结果不一样,原因是你的 Web 服务器 Nginx 里的配置,具体你看一下 nginx.conf 里的配置
2、的确是的,就是 80 端口,只不过不显示而已,你使用 域名或ip:80 的方式,照样可以访问。
当你使用 域名
去访问一个网站的时候, 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
.