简介
本章节主要是介绍WEB服务中的HTTP服务的基本搭建,虚拟WEB主机的搭建,以及一些基本的设置。
3.5.1独立WEB主机
一、WBE基本通信概念
-基于B/S架构的网页服务
-服务端提供网页
-浏览器下载并显示网页
Hyper Text Markup Language(HTML):超文本标记语言
Hyper Text Transfer Protocol(HTTP):超文本传输协议
二、Linux中的WEB服务
软件包: httpd
系统服务: httpd
默认配置:
-Listen:监听地址:端口(80)
-ServerName:本站点注册的DNS名称(空缺)
-DocumentRoot:网页根目录(/var/www/html)
-DirectoryIndex:起始页/首页文件名(index.html)
三、独立站点的快速部署
1.环境设置
虚拟A
[root@srv7 ~]# firewall-cmd --set-default-zone=trusted #将防火墙的默认区域设置为trusted
[root@srv7 ~]# firewall-cmd --get-default-zone #查看默认区域是否设置成功
[root@srv7 ~]# setenforce 0 #调整selinux为宽松模式
[root@srv7 ~]# getenforce #查看selinux的状态
虚拟机B
[root@pc207 ~]# firewall-cmd --set-default-zone=trusted #将防火墙的默认区域设置为trusted
[root@pc207 ~]# firewall-cmd --get-default-zone #查看默认区域是否设置成功
[root@pc207 ~]# setenforce 0 #调整selinux为宽松模式
[root@pc207 ~]# getenforce #查看selinux的状态
2.部署http服务
虚拟机A
[root@srv7 ~]# yum -y install httpd #安装httpd软件包
[root@srv7 ~]# systemctl start httpd #启动http服务
[root@srv7 ~]# systemctl enable httpd #设置http服务开机自启动
[root@srv7 ~]# vim /var/www/html/index.html #编写首页配置文件
NSD 2005 WEB
:wq
3.验证服务
虚拟机B
[root@pc207 ~]# curl http://192.168.4.7 #测试http服务
NSD 2005 WEB
四、配置http服务器
http服务主配置文件:/etc/httpd/conf/httpd.conf
1.修改http服务的根目录
虚拟机A
[root@srv7 ~]# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/var/www/myweb" #修改http服务的根目录
:wq
[root@srv7 ~]# mkdir /var/www/myweb
[root@srv7 ~]# echo wo shi myweb > /var/www/myweb/index.html #编写起始页
[root@srv7 ~]# systemctl restart httpd #重启服务
虚拟机B
[root@pc207 ~]# curl http://192.168.4.7 #访问验证
wo shi myweb
2.httpd服务的访问控制:针对存放网页文件路径
-子目录的访问控制,会继承父目录的访问控制
-除非针对子目录有单独的访问控制
<Directory /var/www> #针对/var/www实行访问控制
Require all denied #拒绝所有客户端访问
虚拟机A
[root@srv7 ~]# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/webroot"
129 <Directory "/webroot"> #重新添加这5行配置 ,针对/webroot实行访问控制
130 AllowOverride None
131 # Allow open access:
132 Require all granted #允许所有人访问
133 </Directory>
:wq
[root@srv7 ~]# mkdir /webroot
[root@srv7 ~]# echo wo shi webroot > /webroot/index.html #编写起始页
[root@srv7 ~]# systemctl restart httpd
虚拟机B
[root@pc207 ~]# curl http://192.168.4.7 #访问验证
wo shi webroot
3.网络路径和实际路径
网络路径:浏览器输入的路径
实际路径:存放网页的绝对路径
[root@srv7 ~]# mkdir /webroot/abc
[root@srv7 ~]# echo wo shi abc > /webroot/abc/index.html
[root@srv7 ~]# curl http://192.168.4.7/abc/
wo shi abc
网络路径://192.168.4.7/abc/
实际路径:/webroot/abc
4.端口号
**端口定义:**数字编号,标识协议或者程序(http协议默认端口:80)
流程:
客户端:curl http://192.168.4.7:80 ——》服务端192.168.4.7——》监听的80端口 http程序处理——》DocumentRoot “/webroot”——》index.html
1)修改http的端口
[root@srv7 ~]# vim /etc/httpd/conf/httpd.conf
42 Listen 8000 #将端口号修改为8000
:wq
[root@srv7 ~]# systemctl restart httpd #重启httpd服务
[root@srv7 ~]# curl http://192.168.4.7:8000 #访问192.168.4.7的8000端口
wo shi webroot
2)添加多个端口
[root@srv7 ~]# vim /etc/httpd/conf/httpd.conf
42 Listen 80
43 Listen 8000
:wq
[root@srv7 ~]# systemctl restart httpd #重启httpd服务
[root@srv7 ~]# curl http://192.168.4.7:8000 #访问192.168.4.7的8000端口
wo shi webroot
[root@srv7 ~]# curl http://192.168.4.7 #浏览器默认补充80端口,所以不用手动添加
wo shi webroot
5.起始页文件
DirectoryIndex:起始页文件(index.html)强烈建议不修改
3.5.2虚拟WEB主机
一、虚拟主机概述
1.虚拟WEB主机的作用
-由同一台服务器提供多个不同的web站点
2.虚拟WEB主机的区分方式
-基于域名的虚拟主机
-基于端口的虚拟主机
-基于IP地址的虚拟主机
二、配置虚拟站点
1.配置文件路径
-/etc/httpd/conf/httpd.conf#主配置文件
-/etc/httpd/conf.d/*.conf #调用配置文件
2.基于域名的虚拟主机
虚拟机A
[root@srv7 ~]# vim /etc/httpd/conf.d/nsd01.conf #建立调用配置文件
<VirtualHost *:80> #本机的所有地址都监听80端口
ServerName www.qq.com #指定网站名称
DocumentRoot /var/www/qq #指定存放网页路径
</VirtualHost>
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
:wq
[root@srv7 ~]# mkdir /var/www/qq /var/www/baidu #创建qq和baidu的网页存放目录
[root@srv7 ~]# echo wo shi qq > /var/www/qq/index.html #qq的页面
[root@srv7 ~]# echo wo shi baidu > /var/www/baidu/index.html #编写baidu的页面
[root@srv7 ~]# systemctl restart httpd #重启http服务
虚拟机B
[root@pc207 ~]# vim /etc/hosts #hosts文件提供域名解析服务,但只能为本机提供服务
192.168.4.7 www.qq.com www.baidu.com #手动添加,192.168.4.7 对应www.qq.com和www.baidu.com 两个域名
[root@pc207 ~]# curl http://www.baidu.com
wo shi baidu
[root@pc207 ~]# curl http://www.qq.com
wo shi qq
注意:
-虚拟web主机功能一旦启动,所有的站点都必须使用虚拟WEB主机的功能进行呈现
-一旦启用虚拟WEB主机以后,外部的DocumentRoot、ServerName会被忽略,第一个虚拟站点被视为默认站点,若客户机请求的URL不属于任何已知站点,则由第一个站点响应
3.基于端口的虚拟主机
虚拟机A
[root@srv7 ~]# vim /etc/httpd/conf.d/nsd01.conf #编写调用配置文件
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
Listen 8000 #监听8000端口
<VirtualHost *:8000> #指定虚拟WEB主机使用8000端口
ServerName www.qq.com
DocumentRoot /var/www/baidu
</VirtualHost>
:wq
[root@srv7 ~]# mkdir /var/www/qq /var/www/baidu #创建qq和baidu的网页存放目录
[root@srv7 ~]# echo wo shi qq > /var/www/qq/index.html #qq的页面
[root@srv7 ~]# echo wo shi baidu > /var/www/baidu/index.html #编写baidu的页面
[root@srv7 ~]# systemctl restart httpd #重启http服务
虚拟机B
[root@pc207 ~]# vim /etc/hosts #hosts文件提供域名解析服务,但只能为本机提供服务
192.168.4.7 www.qq.com www.baidu.com #手动添加,192.168.4.7 对应www.qq.com和www.baidu.com 两个域名
[root@pc207 ~]# curl http://www.qq.com
wo shi qq
[root@pc207 ~]# curl http://www.qq.com:8000
wo shi baidu