linux中Apache服务的基本配置

1.Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。
2.Apache的环境部署
yum install httpd -y 安装apache服务软件
sysctmctl start httpd 开启服务
systemctl enable httpd 设置开机自启动
systemctl status httpd 查看服务状态
linux中Apache服务的基本配置
linux中Apache服务的基本配置
进行防火墙设置:

firewall-cmd --add-service=http --permanent 防火墙永久添加http服务
firewall-cmd --reload 重新加载防火墙
firewall-cmd --list-all 查看服务添加情况
linux中Apache服务的基本配置

vim /var/www/html/index.html 编写默认发布文件(/var/www/html是默认发布目录 新建的index.html 是默认发布文件)
linux中Apache服务的基本配置
curl 192.168.152.131查看更改内容

3、修改默认端口
apache的默认发布端口为80
netstat -antlupe |grep http #查看服务所开放的端口
linux中Apache服务的基本配置
vim /etc/httpd/conf/httpd.conf #修改主配置文件,在其中对默认端口进行修改
linux中Apache服务的基本配置 修改默认端口为8080

更改防火墙策略
systemctl restart httpd 重启服务
firewall-cmd --add-port=8080/tcp 防火墙添加端口8080
firewall-cmd --reload 重新加载防火墙
firewall-cmd --list-all 查看端口添加情况
linux中Apache服务的基本配置
linux中Apache服务的基本配置
curl 192.168.152.131:8080访问修改端口后的发布文件
linux中Apache服务的基本配置 以前的默认端口被更改

系统selinux为Enforcing强制时候,当默认端口被修改成没有被selinux所允许的端口的时候,会导致服务无法启动,需要在selinux所允许的端口中添加所更改的端口。

semanage port -l | grep http #查看selinux允许服务使用的端口
由于selinux不允许使用8080端口,需要进行添加:
semanage port -a -t http_port_t -p tcp 8080 #强制添加8080端口

4、修改默认发布文件以及默认发布目录

默认发布文件就是当访问apache时没有指定文件名称,服务默认访问的文件。
这个文件可以指定多个,有访问顺序,按照其在配置文件中的顺序进行访问。
vim /var/www/html/bruce.html #编写新的发布文件 bruce
vim /etc/httpd/conf/httpd.conf #修改主配置文件164行,将新写文件添加后后
systemctl reload httpd 重启加载服务
linux中Apache服务的基本配置

5、修改默认发布目录

新建一个目录作为发布目录 mkdir -p /bruce/www/html
在目录html下新建发布文件index.html写入内容
linux中Apache服务的基本配置
编辑/etc/httpd/conf/httpd.conf
linux中Apache服务的基本配置
DocumentRoot "/bruce/www/html" #指定更改后的发布目录
<Directory "/bruce/www/html"> #对发布目录进行授权
Require all granted #所有人都可以访问该目录
</Directory>
systemctl reload httpd 重新加载服务
curl 192.168.152.131:8080 测试
linux中Apache服务的基本配置

如果selinux的模式是强制级 则需要
semanage fcontext -a -t httpd_sys_content_t '/bruce(/.*)?' #由于selinux开启,需要更改将作为发布目录的新建目录的安全上下文。
restorecon -FvvR /bruce/ # 修改之后进行刷新 ,不刷新其安全上下文不会改变。

6、apache内部的访问控制
1.针对主机的访问
vim /etc/httpd/conf/httpd.conf 修改配置文件

linux中Apache服务的基本配置
systemctl reload httpd.service 重新加载服务

在192.168.152.128下测试 curl 192.168.152.131:8080
linux中Apache服务的基本配置 访问不到目录 该主机被添加到黑名单中所以访问不到 现在我们把他移除黑名单
在配置文件中移除后访问到文件
linux中Apache服务的基本配置

注意:Order Allow,Deny 服务在读去限制名单的时候,按照此处的先后顺序,先读取白名单中的内容,然后再读取黑名单中的内容,当前后中存在对同一主机的指定时,后读取的内容会覆盖之前的内容。上面上面配置中,先读取白名单允许所有主机进行访问,后读取黑名单限制192.168.152.128进行访问,所以后读取的限制访问覆盖了白名单中对与192.168.152.128主机允许访问的设定。

2)针对用户方式的访问控制
生成用户认证文件:
htpasswd -cm /etc/httpd/bruce laoli 第一次生成该文件 使用参数 -cm
linux中Apache服务的基本配置
htpasswd -m /etc/httpd/bruce laoli1 生成文件之后需要添加用户 使用参数 -m
linux中Apache服务的基本配置
cat /etc/httpd/totofile 查看认证文件信息 显示用户信息
linux中Apache服务的基本配置
对配置文件进行修改:
vim /etc/httpd/conf/httpd.conf
linux中Apache服务的基本配置

DocumentRoot "/bruce/www/html"
<Directory "/bruce/www/html">
AuthUserFile "/etc/httpd/totofile" #授权文件位置
AuthType basic #认证方式Basic
AuthName "please input username and password" #认证说明
Require user laoli #允许访问的用户

Require valid-user

</Directory>
参数 Require user toto1 与 Require valid-user 都是对允许访问的用户进行说明的语句。`Require user laoli 表示只允许laoli用户进行访问; Require valid-user表示允许授权文件中所有的用户进行访问。这两种只能同时存在一个。
systemctl reload httpd.service 重新加载服务
测试
linux中Apache服务的基本配置
linux中Apache服务的基本配置

7、apache的虚拟主机

虚拟主机指的是在单一机器上运行多个网站(例如www.bruce.com; music.bruce.com; news.bruce.com)。虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”,
演示使用192.168.152.131 该一个ip对应 www.bruce.com; music.bruce.com; news.bruce.com三个站点。

创建发布目录以及发布文件

mkdir -p /virtdir/music/html
mkdir -p /virtdir/news/html
#创建不同域名的发布目录
vim /virtdir/music/html/index.html #创建发布文件
vim /virtdir/news/html/index.html #创建发布文件
*semanage fcontext -a -t httpd_sys_content_t '/virtdir(/.)?' # 修改发布目录安全上下文
restorecon -RvvF /virtdir/ #刷新发布目录安全上下文 如果selinux是强制级的话需要这样做
**
linux中Apache服务的基本配置

vim /etc/httpd/conf.d/virthost.conf 编写虚拟主机的配置文件

<VirtualHost default:80> #创建默认虚拟主机,找不到虚拟主机的域名访问也由此主机提供服务。
DocumentRoot /var/www/html #指定发布目录
CustomLog logs/default.log combined #指定日志文件以及日志类型(所有 日志)
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /virtdir/music/html #指定发布目录
ServerName music.bruce.com #虚拟主机指定域名 music.bruce.com
CustomLog logs/music.log combined #指定日志文件以及日志类型(所有 日志)
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /virtdir/news/html #指定发布目录
ServerName news.bruce.com #虚拟主机指定域名 news.bruce.com
CustomLog logs/news.log combined #指定日志文件以及日志类型(所有 日志)
</VirtualHost>

<Directory "/virtdir"> #对新建的发布目录进行认证
Require all granted #允许所有人可以访问该目录
</Directory>

linux中Apache服务的基本配置

systemctl restart httpd 重启服务

测试
在测试端的主机本地解析文件/etc/hosts中,对www.bruce.com; music.bruce.com; news.bruce.com 三个域名进行解析记录,然后通过域名进行访问,显示不同的发布文件:
vim /etc/hosts
linux中Apache服务的基本配置

linux中Apache服务的基本配置

上一篇:linux安装redis及解决无法远程连接的问题


下一篇:Linux中的DNS 正向解析与反向解析,轮询机制