Linux_28_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@localhost) | 
| 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三者组成参数
“Order Allow,Deny”先将源主机与允许规则进行匹配
1)匹配成功则允许访问,反之则拒绝访问请求(实现全部都不允许)
2)“Order Deny,Allow”实现全部都允许访问
如:案例1

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

                    
                
                
            
        
浙公网安备 33010602011771号