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.注册一级域名是需要付费的,而二级域名是基于一级域名延伸出来的,不需要付费。

相关推荐
九河云3 分钟前
如何选择适合的AWS EC2实例类型
服务器·云计算·aws
hjjdebug1 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花2 小时前
第六章:DNS域名解析服务器
运维·服务器
Spring_java_gg2 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
✿ ༺ ོIT技术༻2 小时前
Linux:认识文件系统
linux·运维·服务器
恒辉信达2 小时前
hhdb数据库介绍(8-4)
服务器·数据库·mysql