Nginx从入门到入土(一):DNS域名解析

前言

hostName,在Linux系统上是一个命令,用来显示和设置系统的主机名称。其实它就是域名。

常见的域名有我们熟悉的taobao.com;baidu.com等等。

我们在地址栏输入baidu.com

进入的就是此页面。我们看到地址栏里显示的是www.baidu.com

注意,这是二级域名,我们之后会提到一级和二级

那会不会有一个疑问,为什么我们可以直接访问域名,能不能直接访问ip地址呢?

答案出来了,很明显不行

看了很多的文章解释,无法直接用ip访问大概有一下几点:(摘自https://blog.csdn.net/Fightever_/article/details/130296465)

1.虚拟主机技术

现在很多网站采用虚拟主机技术,即在同一个服务器上托管多个不同的网站,这些网站共享同一个IP地址。此时,访问这些网站需要根据 HTTP 请求中的 Host 头信息来确定具体访问哪个网站,而不是仅仅通过 IP 地址来访问。因此,如果你只输入了 IP 地址,服务器无法确定你具体要访问哪个网站,就会返回错误提示。

2.网站域名与 IP 地址不匹配

有些时候,一个网站可能有多个 IP 地址或者在不同时间段 IP 地址发生变化。如果你使用的是过期的 IP 地址或者错误的 IP 地址,就无法正确访问该网站。

3.防火墙或者路由器设置问题

一些防火墙和路由器可能会针对不安全的 IP 地址或者特定类型的流量进行屏蔽或者过滤,这会导致使用 IP 地址无法访问网站。当然,这种情况下多数情况下可以通过检查网络安全配置来解决。

总结,有些服务器通过检测Host字段防止客户端直接使用IP进行访问,一般的网站会放在虚拟主机,虚拟主机上会放置很多的网站,而每个网站会绑定一个或以上域名。一般用户在访问的时候会有host信息提供给服务器,告诉服务器要访问的域名,从而实现一台主机绑定一个ip,即使有多个网站,也不会互相干扰。但使用ip访问,不知道访问哪个网站,也就无法访问了。

当然我们使用域名最主要的目的还是为了记忆 ,一连串的数字也记不过来,之后再通过DNS解析成对应的ip地址。

本地DNS域名解析

配置文件地址

c盘目录下,C:\Windows\System32\drivers\etc

右键选择一种工具打开,我用的是Nodepad++。

添加一行127.0.0.1 www.boyatop.cn

下面是#127.0.0.1 www.boyatop.cn的情况(注释掉,或者没写这段代码前),可以看出是能够直接访问的。

但是用127.0.0.1 www.boyatop.cn将本机ip与博雅域名绑在一起后

就会无法访问该页面,原因如下

我们想要在浏览器访问一个域名的时候会优先从本机hosts文件中寻找,有就直接返回,没有就联网寻找(也是最常见的情况)。

那很明显这个时候是有的。那为什么运行不了,主要是因为本地没有运行相应的服务,如果我们本地机器上没有运行相应的监听端口的服务(默认80),尝试访问域名是不会有任何响应的。

这时候 我们运行拟运行一个程序,来监听8071端口

controller:

java 复制代码
@Controller
public class NginxTest {

    /**
     * 访问controller实现代理访问
     */
    @ResponseBody
    @RequestMapping("/getBoyatop")
    public String getBoyatop(){
        //打印证明接口被访问
        System.out.println("接口被访问8081!!");
        return "Hello World qcbySpringBootNginx8081!!!!";
    }

    /**
     * 访问controller实现代理访问
     */
    @ResponseBody
    @RequestMapping("/")
    public String getBoyatop01(){
        //打印证明接口被访问
        System.out.println("接口被访问8071!!");
        return "Hello World!";
    }


}

启动类:

java 复制代码
//声明了一个SpringBoot启动类
@SpringBootApplication
@MapperScan(basePackages = "com.qcby.mapper")
public class NginxApplication {
    public static void main(String[] args) {
        SpringApplication.run(NginxApplication.class,args);
    }
}

properties、yml和pom.xml文件请自行配置

运行启动类

这下就能够访问到了。

JDK中与IP地址相关的类与方法

InetAddress类的常用方法:


一级二级域名

首先一级域名是由字母、拼音或数字等组成的主体部分,再加上域名后缀组成。像baidu.com就是一级域名。 baidu是域名主体,.com是域名后缀。像http://58.comhttp://taobao.com 也都是一级域名。

二级域名就是在一级域名前再加一级,比如:一级域名http://baidu.comhttp://www.baidu.com就是二级域名,只是人们习惯使用www为前缀的二级域名作为网站的主域名入口,这样更方便大家记忆。

一级域名和二级域名的区别

  1. 二级域名是依赖一级域名存在的,打个比方,一级域名没了,那么二级域名也没了。二级域名没了对一级域名没有影响。

2.注册一级域名是需要付费的,而二级域名是基于一级域名延伸出来的,不需要付费。

相关推荐
JunLan~1 小时前
Rocky Linux 系统安装/部署 Docker
linux·docker·容器
方竞2 小时前
Linux空口抓包方法
linux·空口抓包
sun0077003 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
海岛日记3 小时前
centos一键卸载docker脚本
linux·docker·centos
oi774 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
AttackingLin4 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
贰十六4 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
学Linux的语莫5 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible