
Linux Apache服务器的应用与管理
Linux Apache服务器的应用与管理
引导
- 了解常用Web服务器软硬件平台
- 掌握Apache服务器的安装和启停控制
- 熟悉Apache服务器配置文件结构
- 掌握Apache访问控制和用户授权机制
- 熟悉SELinux对Apache服务的影响
- 掌握Apache虚拟主机配置方法
Apache作为全球使用最广泛的Web服务器软件,具备以下核心优势:
- 跨平台支持:可运行于Linux、Windows、Unix等主流操作系统
- 高安全性:严格的权限控制和模块化安全机制
- 灵活扩展:支持Perl/Python等解释器,可通过API扩展功能
- 高性能:优化的多道处理模块(MPM)支持高并发访问
- 开源免费:采用Apache许可证,允许商业应用
本项目将系统介绍Apache服务器的安装配置、安全加固及虚拟主机技术,重点解析SELinux与Apache的协同工作机制。
##实施
1:Apache服务器基础配置
1.1:安装与启停控制
-
安装流程
# RHEL/CentOS系统安装 yum install httpd -y # 验证安装 httpd -v # 输出: Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
-
核心文件路径
文件类型 路径 主配置文件 /etc/httpd/conf/httpd.conf 默认网站根目录 /var/www/html 访问日志 /var/log/httpd/access_log 模块存储目录 /usr/lib/httpd/modules -
服务管控命令
systemctl start httpd # 启动服务 systemctl enable httpd # 开机自启 apachectl restart # 重启服务(配置生效)
-
基础测试
echo "Apache Test Page" > /var/www/html/index.html curl http://localhost # 应返回"Apache Test Page"
1.2:配置文件深度解析
Apache主配置文件 /etc/httpd/conf/httpd.conf
采用模块化结构:
1. 全局环境配置
ServerRoot "/etc/httpd" # 配置/日志文件根目录
Listen 80 # 监听端口
User apache # 运行用户(非root)
Group apache # 运行组
2. 主服务器配置
ServerAdmin root@localhost # 管理员邮箱
DocumentRoot "/var/www/html" # 网站根目录
DirectoryIndex index.html # 默认首页搜索顺序
ErrorLog "logs/error_log" # 错误日志路径
CustomLog "logs/access_log" combined # 访问日志格式
3. 安全增强配置
<Directory />
AllowOverride none
Require all denied # 禁止根目录访问
</Directory>
<Files ".ht*">
Require all denied # 屏蔽.htaccess访问
</Files>
4. 性能优化参数
Timeout 60 # 连接超时(秒)
KeepAlive On # 启用持久连接
MaxKeepAliveRequests 100 # 单连接最大请求数
KeepAliveTimeout 15 # 连接保持时间
关键指令说明:
Options Indexes FollowSymLinks
:允许目录列表和符号链接AllowOverride None
:禁用.htaccess覆盖配置LogFormat
:定义日志记录格式(详见日志参数表)
2:访问控制与用户认证
2.1:基于主机的访问控制
Apache 2.4+采用mod_authz_host模块实现精细化控制:
典型配置案例
<Directory "/var/www/html/protected">
# 仅允许特定IP段访问
Require ip 192.168.1.0/24
# 允许域名访问
Require host example.com
# 拒绝特定主机
Require not host hacker.com
</Directory>
2.2:用户认证与授权
基础认证配置流程
- 创建密码文件
mkdir /etc/httpd/passwords htpasswd -c /etc/httpd/passwords/webusers user1
- 配置认证域
<Directory "/var/www/html/secure"> AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/httpd/passwords/webusers Require valid-user </Directory>
- 权限设置
chown apache:apache /etc/httpd/passwords/webusers chmod 640 /etc/httpd/passwords/webusers
3:SELinux与Apache集成
3.1:自定义网站目录
当网站目录变更时需同步SELinux策略:
# 1. 修改主配置
sed -i 's|/var/www/html|/data/webroot|g' /etc/httpd/conf/httpd.conf
# 2. 创建新目录
mkdir -p /data/webroot
echo "New Web Root" > /data/webroot/index.html
# 3. 设置SELinux上下文
semanage fcontext -a -t httpd_sys_content_t "/data/webroot(/.*)?"
restorecon -Rv /data/webroot
3.2:开启个人用户主页
- 启用模块
# /etc/httpd/conf.d/userdir.conf UserDir public_html
- 用户端配置
su - user1 mkdir ~/public_html echo "User1 Homepage" > ~/public_html/index.html chmod 711 ~ chmod 755 ~/public_html
- SELinux策略
setsebool -P httpd_enable_homedirs=on
4:虚拟主机配置实践
4.1:基于IP的虚拟主机
<VirtualHost 192.168.1.10:80>
DocumentRoot /var/www/site1
ServerName site1.example.com
ErrorLog logs/site1_error.log
CustomLog logs/site1_access.log combined
</VirtualHost>
<VirtualHost 192.168.1.20:80>
DocumentRoot /var/www/site2
ServerName site2.example.com
</VirtualHost>
4.2:基于域名的虚拟主机
# /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName www.domain.com
DocumentRoot /var/www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName shop.domain.com
DocumentRoot /var/www/shop
</VirtualHost>
关键步骤
# 1. 创建网站目录
mkdir -p /var/www/{domain,shop}
# 2. 设置SELinux上下文
semanage fcontext -a -t httpd_sys_content_t "/var/www/domain(/.*)?"
restorecon -Rv /var/www/domain
# 3. 本地域名解析
echo "192.168.1.100 www.domain.com shop.domain.com" >> /etc/hosts
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 牧之小岛-Allende
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果