web服务
一、DNS服务
1、 完全合格域名
(1)完全合格域名由主机名称和域名组成
(2)域名 由 根域、顶级域和二级域组成
(3)每个域名都由标号序列组点成,而各标号之间用点(“.”)隔开
(4)以下图为例:
红色区域表示主机名称
蓝色区域表示二级域(公司或者企业的名称)
绿色区域表示顶级域(组织域,三个字母组成、国家或者地区域,一般由2个字母组成)
最后的区域则表示根域(用"."来表示)
2、DNS的作用
(1)DNS作用: DNS的主要作用是将域名转换为IP地址
(2)DNS解析过程:
计算机中存在
1、用户请求: 用户向目标域名(例如,baidu.com)发起解析请求。
2、 本地DNS服务器: 客户端浏览器首先请求本地DNS服务器。
3、缓存检查: 本地DNS服务器检查自身缓存,如果有对应域名的解析记录,直接返回给浏览器,解析结束。
计算机不存在
1、 缓存未命中: 如果缓存中没有记录,本地DNS服务器代替客户端向根服务器发起请求。
2、根服务器响应: 根服务器将顶级域(.com)的地址告知本地DNS服务器。
3、 向顶级域发起请求: 本地DNS服务器向顶级域服务器发起请求。
4、顶级域服务器响应: 顶级域服务器将负责baidu.com的权威解析服务器地址告知本地DNS服务器。
5、向权威解析服务器发起请求: 本地DNS服务器向权威解析服务器发起请求。
6、 权威解析服务器响应: 权威解析服务器将baidu.com对应的IP地址告知本地DNS服务器。
7.、解析记录返回: 本地DNS服务器将解析记录告知客户端浏览器。
8、访问目标IP: 客户端浏览器使用解析结果中的IP地址发起访问,整个解析过程结束。
3、查询方式和解析方式
(1)查询方式:
递归查询:客户端与DNS服务器之间
迭代查询:DNS服务器与DNS服务器之间
(2)解析方式:
正向解析:完全域名解析IP地址
反向解析: IP地址解析完全域名
4、搭建DNS服务
(1)、下载安装 ind bind-utils 包
[root@web html]# yum -y install bind bind-utils
(2)、DNS主配置文件和服务名称
[root@web ~]# vim /etc/named.conf //DNS主配置文件
//在DNS主配置文件中修改以下内容才可以修改全局配置文件
options {
listen-on port 53 { any; }; // 可以监听的端口
// listen-on-v6 port 53 { any; }; //可以注释 也可以修改为any
directory "/var/named";o // DNS的工作目录
allow-query { any; }; //允许访问的主机
}
named // DNS服务名称
(3)、DNS全局配置文件
include "/etc/named.rfc1912.zones"; //全局配置文件
(全局配置文件作用:1、定义域与网段的关系2、DNS的类型,主DNS,辅助DN2解析文件的名字叫什么)
正向解析母版
zone "example.com" IN {
type master; //定义主DNS或者副DNS
file "cy.com"; //正向解析母版、反向解析母版文件名称
allow-update { none; };
};
反向解析母版
zone "100.168.192.in-addr.arpa" IN {
type master;
file "com.cy";
allow-update { none; };
};
// named.localhost 正向解析文件
// named.empty 反向解析文件
(4)正反向解析文件
[root@web named]# cp -p /var/named/named.localhost cy.com
[root@web named]# cp -p /var/named/named.empty com.cy
----------------------------------------------------------------
正向解析文件cy.com /var/named/cy.com---->正向解析文件位置
$TTL 1D
@ IN SOA web.example.com. admin.yun.com. (
20240716 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS web.example.com.
web IN A 192.168.100.10
admin IN A 192.168.100.20
web1 IN A 192.168.100.10
web2 IN A 192.168.100.10
~
// 第一个 @ 匹配所有的DNS服务器
// SOA 起始授权机构
-----------------------------------------------------------------
正向解析文件cy.com /var/named/com.cy---->反向解析文件位置
$TTL 3H
@ IN SOA web.example.com. admin.yun.com. (
20240716 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS web.example.com.
10 IN PTR web.example.com. ; 192.168.100.10
20 IN PTR admin.yun.com. ;192.168.100.20
(5)搭建网页
在/var/www/下创建web1、web2
[root@web ~]# cd /var/www/
[root@web www]# ls
cgi-bin html web1 web2
二、搭建HTTPD服务
1、安装 httpd
[root@web ~]# yum -y install httpd //安装 httpd软件包
2、httpd的配置文件、默认的DocumentRoot
[root@web conf]# vim /etc/httpd/conf/httpd.conf //默认的httpd的配置文件
[root@web conf]# cd /var/www/html/ //默认的DocumentRoot
默认的 httpd.conf 的配置文件:
//默认端口为80
Listen 80
//DocumentRoot默认存放位置
DocumentRoot "/var/www/html"
// 修改 DocumentRoot同时也要修改下面的文件,允许所有人访问站点
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
// 定义默认网页的名字
<IfModule dir_module>
DirectoryIndex index.html ------> 如果不是此名字要写全,列如:index.php
</IfModule>
3、可以在/var/www/html/ 下创建文件来改变测试页面
[root@web ~]# cd /var/www/html/
[root@web html]# ls
[root@web html]# vim index.html
[root@web html]# curl http://192.168.100.10
welcome to wuhang
[root@web html]#
三、虚拟主机
虚拟主机配置
// 虚拟主机位置
[root@web ~]# cd /etc/httpd/
[root@web httpd]# ls
conf conf.d conf.modules.d logs modules run state
[root@web httpd]#
// 虚拟主机配置模板
[root@web conf.d]# find / -name "*httpd*host*"
/usr/share/doc/httpd-core/httpd-vhosts.conf
相同的IP不同的端口
# ------------------------------------------------------------------
<VirtualHost 192.168.100.10:80>
DocumentRoot "/var/www/web1"
</VirtualHost>
# ------------------------------------------------------------------
Listen 8080
<VirtualHost 192.168.100.10:8080>
DocumentRoot "/var/www/web2"
</VirtualHost>
# ------------------------------------------------------------------
//重启服务,查看web1、web2
[root@web conf.d]# systemctl restart httpd
[root@web conf.d]# curl http://192.168.100.10:80
welcome to web1 site
[root@web conf.d]# curl http://192.168.100.10:8080
welcome to web2 site
[root@web conf.d]#
相同的端口不同的IP
# ------------------------------------------------------------------
<VirtualHost 192.168.100.10:80>
DocumentRoot "/var/www/web1"
</VirtualHost>
# ------------------------------------------------------------------
<VirtualHost 192.168.100.123:80>
DocumentRoot "/var/www/web2"
</VirtualHost>
# ------------------------------------------------------------------
//添加IP
[root@web conf.d]# vim /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
address1=192.168.100.10/24,192.168.100.254
address2=192.168.100.123/24,192.168.100.254
dns=114.114.114.114;
method=manual
//重启网络服务、httpd,激活链接
[root@web conf.d]# systemctl restart NetworkManager
[root@web conf.d]# systemctl restart httpd
[root@admins ~]# nmcli connection up ens160
# ------------------------------------------------------------------
//重启服务,查看web1、web2
[root@web conf.d]# systemctl restart httpd
[root@web conf.d]# curl http://192.168.100.10:80
welcome to web1 site
[root@web conf.d]# curl http://192.168.100.10:8080
welcome to web2 site
[root@web conf.d]#
相同IP和端口
//用域名来区分
# ------------------------------------------------------------------------------------
<VirtualHost 192.168.100.10:80>
DocumentRoot "/var/www/web1"
ServerName web1.example.com
</VirtualHost>
# ------------------------------------------------------------------------------------
<VirtualHost 192.168.100.10:80>
DocumentRoot "/var/www/web2"
ServerName web2.example.com
</VirtualHost>
# ------------------------------------------------------------------------------------
//在/var/named/cy.com (正向解析)中加入以下两条
web1 IN A 192.168.100.10
web2 IN A 192.168.100.10
// 修改web2的DNS(客服端)
[ipv4]
address1=192.168.100.20/24,192.168.100.254
dns=192.168.100.10;
method=manual
//重启named、httpd激活链接
[root@web conf.d]# systemctl restart named
[root@web conf.d]# systemctl restart httpd
[root@admins ~]# nmcli connection up ens160
//测试查看结果
[root@admins ~]# ping web.example.com //ping下
[root@admins ~]# curl http://web1.example.com
welcome to web1 site
[root@admins ~]# curl http://web2.example.com
welcome to web2 site