第十章.DNS服务
dns 域名解析协议
作为分布式数据库将域名和IP地址互相映射 让人们更方便的访问互联网 而不是去记ip数串
UDP协议 端口53
域名解析过程
1.我们在浏览器中输入 www.qq.com域名,操作系统检查本地hosts文件 是否有这个网址的映射关系 如果有,调用本地的ip地址映射 完成域名解析。(hosts文件,记录了一些常用的网站域名的对应关系,可以自己编辑)
2.如果hosts没有这个域名映射,则检查本地DNS解析器缓存,是否有这个网址映射关系,如果有则返回,完成域名解析。
3.如果本地DNS解析器缓存没有,首先去找TCP/IP参数中设置的首选DNS服务器,我们一般叫本地DNS服务器,收到查询,如果包含在本地配置区域资源中,则返回解析结果,给客户机,完成域名解析,此解析具有权威性。
4.如果本地配置区域资源没有,但本地DNS服务器缓存了这个网址的映射关系,则调用这个IP地址映射,完成解析,此解析具有权威性。
5.如果本地DNS服务器本地区域文件与缓存解析,都失效,则根据本地DNS服务器设置进行查询,如果未用转发模式,本地DNS把请求发给“根DNS服务器”,“根DNS服务器”收到请求之后,判断这个域名(.COM .CN)是谁来授权管理,返回一个负责该顶级域名服务器的一个IP。
6.根DNS服务器 收到解析请求,联系负责.com域的这台服务器,负责.com域的服务器,收到请求后,如果自己无法解析,就找到下一个负责管理.com域的下一级DNS服务器,(qq.com)给本地DNS服务器,本地DNS收到地址后,就会去找qq.com,重复上面的动作,直到找到主机。
7.如果使用转发模式,DNS服务器会把请求转发至上一级DNS服务器,由上一级服务器进行解析,如果上一级不能解析,把请求转至上一级,或者找根,以此循环。
8.不管是本地DNS服务器用的转发,还是找根,最终结果都会返回给本地DNS服务器,本地DNS服务器结果返回给我们。
递归与迭代
总结来说,本地服务器到下一级服务器的时候是递归,本地服务器找到下一级服务器之前在这一级服务器的时候,这一级服务器会迭代查询下一级服务器(我自己的理解,如有哪里错误请指教)
DNSMASQ
dnsmasq服务提供DNS缓存DHCP服务功能
配置文件 /etc/dnsmasq.conf
本地映射文件 /etc/hosts
域名配置文件 /etc/resolv.conf
安装dnsmasq yum -y install dnsmasq
Apache
apache的安装
yum -y install httpd
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 定义了网站的主页
实验一 修改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 基于域名_小肥是只猫的博客-CSDN博客)(emmmmmmm,实验四安装教程来没有成功,希望能得到指点)
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 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等
错误日志