[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)

实验目标:

  • 搭建基于域名和基于IP的虚拟主机
  • 搭建个人网站和实现访问控制

1.基本了解

WWW的核心是HTTP协议,由于HTTP协议是明文的数据传输,所以有了基于SSL加密协议的HTTP协议,即HTTPS协议。在Linux中有httpd守护进程来进行相应的服务。可以用httpd进程来监听80端口(http通信)443端口(https通信)

2.主要配置文件的了解

Apache HTTP的主要配置文件==/etc/httpd/conf/httpd.conf==。
http.conf主要分为三部分:全局环境、主服务器配置、和虚拟主机

全局环境:配置整个服务器的相关指令,指令格式为:指令 参数值。

指令 含义 默认参数
ServerTokens 配置http服务器返回给客户端的响应头中是否包含服务器操作系统版本 OS:基本操作系统信息
ServerRoot 服务器的顶级目录所在 /etc/httpd:其他相关配置文件存放在该目录的二级目录下
PidFile 记录hhtpd进程PID文件 /run/httpd.id:该目录需结合顶级目录参考
Timeout 自动断开连接的最大时限 60:单位是秒
KeepALive 是否建立持续连接 off:不建立持续连接
Listen 监听的服务器端口 80
User apache&Group apache 多处理模块启动的服务子进程的所属用户及所属组群

主服务器配置:主要了解目录访问权限

访问控制指令

对于目录的访控指令主要讲:
AllowOverride:用于设定是否允许覆盖当前的访问权限设置

虚拟主机:使得一台实际的Apache服务器可以提供多个不同的主机,每台主机好像独立存在的。
基于IP地址的虚拟主机:不同的IP地址来访问不同的虚拟主机。配置时主要利用网卡的不同接口,即设置IP别名,利用DNS服务器进行解析后连接不同的虚拟主机。
== 基于名称的虚拟主机==:不同的虚拟主机使用同一个IP地址。配置时主要是利用http.conf文件中的 < VirtualHost >来进行不同的虚拟主机辨别。
个人网站:Linux系统中的用户可以设置客人网站,并且可以控制允许访问权限。要开通个人网站,首先要对== /etc/httpd/userdir.conf ==文件中的指令进行修改,一般默认情况是禁止开通个人网站。

3.配置步骤

准备工作:防火墙和SELinux对hhtp进行开放(自行解决)
①基于名称的虚拟主机的配置
-自定义两台虚拟主机(多个名称对应一个IP地址)

student.example.com 192.168.2.105
office.example.com 192.168.2.105

-配置named.conf,定义正向解析区文件和反向解析区文件(此处也可以不用重新定义)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第1张图片
-在正向解析区文件和反向解析区文件中都添加相应的资源记录(注意细节,比如说’.’)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第2张图片
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第3张图片
-重启named服务,用dig命令检测是否配置成功(出现标红那段的就是配置成功了,当然也可以用nslookup来解析,只要证明配置没毛病就行,注意!!这里踩雷一次,DNS真的是每次都要仔细去看看/etc/resolv.conf文件有没有修改为自己的DNS服务器做首选,就是要把自己Linux虚拟机IP加在第一行了
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第4张图片
-配置网站首页
在这里插入图片描述
-修改httpd.conf,添加如下虚拟主机配置(刚开始因为把student的路径写成了/var/www/office,后来登录的时候一直访问的时office的主页,所以要细心)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第5张图片
== 注意:在新版本的Apache中是不需要添加 NameVirtualHost (如下),不然在启动httpd时会报: NameVirtualHost has no effect and will be removed …直接去掉就可以了 ==
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第6张图片 -重启httpd服务后,在浏览器中分别使用域名访问两个虚拟主机(成功)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第7张图片
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第8张图片
== ②基于IP的虚拟主机==
-又自定义两个虚拟主机(不同主机不同IP)

student.example.com 192.168.2.106
office.example.com 192.168.2.107

-用ifconfig和route命令为网卡ens33增加两个接口,ifconfig后显示出来ens33多了两个子设备(不叫ens33,叫eth0也行,默认网卡名称而已)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第9张图片
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第10张图片-熟悉的DNS配置再来一遍
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第11张图片
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第12张图片
-熟悉的httpd.conf虚拟主机配置再来一遍(接上个实验改下IP就可以了)
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第13张图片
-IP登录
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第14张图片
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第15张图片③个人网站及访问控制
-修改httpd.conf文件(对/home下的所有用户允许访问覆盖)
在这里插入图片描述
-修改userdir.conf文件当然,不同的版本userdir所在不同,有些可以直接在httpd.conf文件中找到mod_userdir模块,但是如果httpd.conf文件中不存在该模块,那么就应该存在一个独立的userdir的配置文件,此次实验我开始对httpd.conf简单的手动添加mod_userdir模块,并成功开通个人网站功能,而是在对userdir.conf文件进行修改后,个人网站才得以开通
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第16张图片-设置Apache服务器的身份验证账号test1、test2
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第17张图片
-切换至cy用户、准备访问目录
在这里插入图片描述
-创建.htaccess文件,允许test1、test2访问
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第18张图片
-使用浏览器:http://localhost/~cy 登录用户个人网站,可以使用test1和test2账号进行登录
[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第19张图片[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第20张图片

[Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP)_第21张图片

你可能感兴趣的:([Linux CentOS] 虚拟机中www服务器搭建(Apache HTTP))