跳到主要内容

29、Linux 实战:Linux-Apache

Apache

Apache:一款Web服务程序,通过HTTP和HTTPS提供对应服务

1)具有跨平台、高安全性、快速、可靠和通过简单API扩展等优点

2)默认占用80端口

配置

Apache安装指令:yum install -y httpd

如:在系统中安装Apache程序
 

如:启动httpd服务(systemctl start httpd)后,访问本机IP
 
//httpd服务没有配置时,Apache程序的默认界面

httpd服务的主要配置文档如下:

文档路径 说明
/etc/httpd 服务目录
/etc/httpd/conf/httpd.conf 主配置文件
/var/www/html 存储网站数据的目录
/var/log/httpd/access_log 存储访问日志文件
/var/log/httpd/error_log 存储错误日志文件

/etc/httpd/conf/httpd.conf:主配置文件中有全局配置、区域配置和注释行三类信息

1)常用的配置参数如下:

参数 说明
ServerRoot 指定服务目录 (默认为/etc/httpd)
ServerAdmin 指定管理员邮箱 (默认为root@ddkk.com)
User 指定运行该服务的用户 (默认为apache)
Group 指定运行该服务的用户组 (默认为apache)
ServerName 指定网站服务器的域名
DocumentRoot 指定存储网站数据的目录 (默认为/var/www/html)
Directory 指定存储网站数据目录的权限
Listen 指定监听的IP地址和端口号 (默认为80)
DirectoryIndex 指定默认索引页面 (默认为index.html)
CustomLog 指定访问日志文件 (默认为/var/log/httpd/access_log)
ErrorLog 指定错误日志文件 (默认为/var/log/httpd/error_log)
Timeout 指定网页超时时间 (默认为300s)

如:查看/etc/httpd/conf/httpd.conf文件
 
//全局配置:全局性配置参数,作用于所有的子站点

//区域配置:局域性配置参数,作用于针对的独立子站点

//注释行:解释全局配置参数和区域配置参数

如:配置/var/www/html/index.html文件,再访问服务器IP

1)配置文件;
 
2)访问IP
 
//指定访问其他目录下文件时,需配置SELinux

如:指定存储网站数据的目录为/home/wwwroot,并访问服务器IP

1)建立目录,并配置索引文件
 

2)配置httpd服务的主配置文件/etc/httpd/conf/httpd.conf
 
3)访问服务器IP
 
//出现Apache程序的默认界面,且SELinux报错

4)配置SELinux安全上下文
 
5)访问服务器IP
 

个人用户主页

个人用户主页:实现每位用户拥有独立的网站

1)Apache程序自带个人用户主页功能(默认关闭)

//通常是基于虚拟网站主机功能部署多个网站实现

如:配置拥有个人用户主页的Apache服务器

1)配置httpd服务的个人用户主页配置文件/etc/httpd/conf.d/userdir.conf
 
2)建立存储个人用户主页的网站数据目录,并配置对应权限(一般为755)
 

3)配置SELinux策略(SELinux策略默认不允许httpd服务的个人用户主页)
 

4)访问mwl用户的个人主页
 

//访问个人用户主页格式:IP/~用户名

身份验证主页

身份验证主页:网页不直接将内容显示,而需要对应的身份验证才可查看

htpasswd命令:Apache内置的创建、更新和存储用户名、密码和域的文件

指令格式:htpasswd 选项

选项 含义
-c 文件路径 创建一个数据库加密文件
-s 采用SHA算法对密码进行加密(默认为MD5)
-p 取消密码加密(明文密码)
-D 用户名 从数据库中删除指定用户

//添加用户为:htpasswd 数据库文件路径 用户名(再输入两次密码)

如:配置拥有身份验证主页的Apache服务器

1)建立用户的密码验证数据库;
 

2)配置httpd服务的个人用户主页配置文件/etc/httpd/conf.d/userdir.conf
 
3)访问mwl个人用户主页
 

虚拟主机

虚拟主机:实现单个服务器上运行多个网站

1)虚拟主机无法实现类似云主机技术的硬件资源隔离

2)Apache的虚拟主机功能是基于用户请求不同IP地址、主机域名或端口号

基于IP

基于IP:服务器有多个IP地址,每个IP地址与服务器上部署的网站相对应

1)当用户请求不同的IP地址时,就访问到不同网站的页面资源

如:配置基于IP地址的虚拟主机

1)配置eno16777736,使其拥有3个IP地址;
 
2)重启网络,并验证3个IP地址的连通性
 
3)创建各个IP地址的网站数据存储目录和索引页面
 
4)配置httpd服务的主配置文件/etc/httpd/conf/httpd.conf
 
5)配置SELinux安全上下文
 
6)访问192.168.121.28、192.168.121.29和192.168.121.30
 

 

 

基于域名

基于域名:根据不同的域名请求,进而传输不同的内容

1)服务器上有且仅有一个可用的IP地址

2)可通过配置DNS解析服务或者/etc/hosts文件实现

//httpd服务会自动识别域名

如:配置基于主机域名的虚拟主机

1)配置/etc/hosts文件实现类似域名解析功能;
 
2)创建各个IP地址的网站数据存储目录和索引页面;
 
3)配置httpd服务的主配置文件/etc/httpd/conf/httpd.conf
 
4)配置SELinux安全上下文;
 
5)访问www.mwl128.com、www.mwl129.com、www.mwl130.com
 
 
 

基于端口

基于端口:根据不同的端口请求,进而传输不同的内容

1)默认端口号为:80、81、443、488、8008、8009、8443、9000

//httpd服务会自动识别端口

如:配置基于主机端口的虚拟主机

1)创建各个IP地址的网站数据存储目录和索引页面;
 
2)配置httpd服务的主配置文件/etc/httpd/conf/httpd.conf(先指定端口);
 
 

3)配置SELinux安全上下文;
 
4)配置SELinux开发6111和6222端口给httpd服务;
 
5)访问192.168.121.128:6111和192.168.121.128:6222
 
 

访问控制

访问控制:Apache程序基于源主机名、源IP或源主机上的浏览器等特征信息对网站上的资源进行访问限制;

指令 说明
Allow 允许指定主机访问服务器上的网站资源
Deny 拒绝指定主机访问服务器上的网站资源
Order 定义Allo和Deny指令的作用顺序

1)匹配按照作用顺序进行匹配

2)Order Allow,Deny或Order Deny,Allow三者组成参数

//常用于.conf配置文件控制文档的访问权限

“Order Allow,Deny”先将源主机与允许规则进行匹配

1)匹配成功则允许访问,反之则拒绝访问请求(实现全部都不允许)

2)“Order Deny,Allow”实现全部都允许访问

如:案例1
 
//httpd服务在执行时,会根据Order指定的顺序执行,如图中右下角,虽然Allow指定允许全部(但作用顺序不是最后一个),因此httpd服务执行到Deny时,就会拒绝IP1和IP2的访问

如:案例2