一、DNS
1.什么是DNS?
DNS(Domain Name System,域名系统)是互联网中用于将域名转换为 IP 地址的分布式数据库系统。它是一个层次化的命名系统,以树状结构组织域名,并将域名映射为 IP 地址。
DNS 的作用是为了方便人们记忆互联网上的资源,例如网站、电子邮件服务器等。因为人们更容易记忆有意义的域名,而不是一串数字的 IP 地址。当你在浏览器中输入一个域名时,浏览器会将域名发送到本地计算机或路由器上的 DNS 解析器,解析器然后查询 DNS 服务器以获取与该域名对应的 IP 地址,并返回给浏览器,浏览器再通过该 IP 地址连接到相应的服务器获取网页内容。
DNS 由多个服务器组成,分为多个层次,每个层次都有不同的功能和不同的服务器。最顶层是根域,下面是顶级域、次级域等。每个域名都可以有多个 DNS 服务器,它们可以在不同的地理位置上,并且可以被配置为主服务器或辅助服务器,以提高可靠性和性能。
DNS 是互联网中不可或缺的一部分,它使得人们可以方便地使用域名来访问网站、发送电子邮件等,而不必记住复杂的 IP 地址。
2.域名解析过程
1).我们在浏览器中输入www.qq.com域名,操作系统检查本地hosts文件,来寻找是否有该网站的映射关系。如果有就调用本地的ip地址映射来完成域名解析。(C盘/Windows/system32/drivers/etc/hosts)
2). 如果hosts没有这个域名映射,会检查本地DNS解析器缓存,来查询是否有这个网址映射关系,如果有则返回,完成域名解析。
3). 如果本地DNS解析器没有缓存,首先去找TCP/IP参数中设置的首选DNS服务器,我们一般叫本地DNS服务器,查询后如果包含在本地配置区域资源中,则返回解析结构给客户机,完成域名解析。此解析具有权威性。
4). 如果本地配置区域资源没有查询到,当本地DNS服务器缓存了这个网址的映射关系,则调用这个IP地址映射,完成解析,此解析具有权威性。
5). 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器设置进行查询。如果未用转发模式,本地DNS把请求发给“根服务器”,“根服务器”收到请求后,会判断这个域名是谁来授权管理的,返回一个负责该顶级域名服务器的IP。
6).根DNS服务器 收到解析请求,联系负责.com域的这台服务器,负责.com域的服务器,收到请求后,如果自己无法解析,就找到下一个负责管理.com域的下一级DNS服务器,(qq.com)给本地DNS服务器,本地DNS收到地址后,就会去找qq.com,重复上面的动作,直到找到主机。
7).如果使用转发模式,DNS服务器会把请求转发至上一级DNS服务器,由上一级服务器进行解析,如果上一级不能解析,把请求转至上一级,或者找根,以此循环。
8).不管是本地DNS服务器用的转发,还是找根,最终结果都会返回给本地DNS服务器,本地DNS服务器结果返回给我们。
☆ 根域(.)
- 在整个 DNS 系统的最上方一定是 . (小数点) 这个 DNS 服务器 (称为 root),也叫”根域“。
- 根域 (13台 全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。)
☆ 一级域名<顶级域|国家域>
com net edu gov org cc io| cn uk us ru ja ko
.com : 商业公司
.net :互联网公司
.edu :教育(中小学、高中、大学…)
.gov :政府
.io :存储设备,redis
.cn :中国域名(国家域)
☆ 二级域名(自己购买管理)
qq.com**.** baidu.com. google.com.
☆ 域名机构
收费(新网|万网)
老牌免费域名:TK顶级域名、TK域名DNS、TK域名商
2.递归与迭代
如果询问一次得到结果 递归查询 C-S
如果询问多次得到结果 迭代查询 S-S
3.DNSMASQ
dnsmasq服务提供DNS缓存DHCP服务功能
配置文件 /etc/dnsmasq.conf
本地映射文件 /etc/hosts
域名配置文件 /etc/resolv.conf
安装dnsmasq yum -y install dnsmasq
二、Apache
1.Apache的安装
yum -y install httpd
2.Apache的配置文件
/etc/httpd apache配置文件目录
/etc/httpd/conf/httpd.conf apache主配置文件
/var/www/html apache默认存放网页的根目录
/etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" 定义了apache配置文件目录
Listen 80 定义了apache的端口
User apache 定义了启动用户 Group apache 定义了启动组
ServerAdmin root@localhost 定义管理员邮箱
#ServerName www.example.com:80 定义了服务器的域名
DocumentRoot "/var/www/html" 定义了网站的根目录
DirectoryIndex index.html 定义了网站的主页
3.相关实验
实验一 修改httpd默认监听端口
vim /etc/httpd/conf/httpd.conf
重启
实验二 替换默认页面
在/var/www/html根目录下
创建默认页面index.html 内容为 hello world
echo "hello world" > index.html
实验三 替换默认首页的名称
vim /etc/httpd/conf/httpd.conf
创建index2.html 内容为 hello world too
echo "hello word too" >> index2.html
实验四 Apache的虚拟主机
[Centos7 Apache配置虚拟主机的三种方式 - 知乎 (zhihu.com)](Apache虚拟主机的配置(基于域名、端口、IP)_apache 基于域名_小肥是只猫的博客-优快云博客)
Apache日志
tail -f /var/log/httpd/*
192.168.158.131 - - [26/Jul/2023:15:07:50 +0800] "GET /index.html HTTP/1.1" 304 1415 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
远程主机IP 表明了访问日志的是谁
空白 - E-mail 为了避免用户被垃圾邮件骚扰 所以用-取代
空白 - 登录名 用于记录浏览者进行身份验证时提供的名字
请求时间:用方括号包围
请求方法/资源/协议 服务器收到的时一个什么样的请求。
状态码:请求的状态 一般200
发送字节数 表示发给客户端的总字节数
UA 客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等
错误日志