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

相关推荐
知星小度S25 分钟前
Linux权限探秘:驾驭权限模型,筑牢系统安全
linux·运维·服务器
黄交大彭于晏30 分钟前
发送文件脚本源码版本
java·linux·windows
搞Linux的杰仔1 小时前
Ubuntu20.04基础配置安装——系统安装(一)
linux·嵌入式开发
Kaede63 小时前
如何应对Linux云服务器磁盘空间不足的情况
linux·运维·服务器
Zfox_5 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
apocelipes9 小时前
Linux c 运行时获取动态库所在路径
linux·c语言·linux编程
ABB自动化10 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
努力学习的小廉10 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
秃头菜狗10 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
利刃大大10 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目