web服务器的配置实验报告

本次实验旨在通过实际操作掌握Web服务器的配置方法,包括环境搭建、虚拟主机设置、SSL证书部署及性能优化等关键环节,实验环境采用Linux操作系统(CentOS 7.9),Web软件选用Apache 2.4.6,数据库使用MySQL 5.7,通过逐步配置实现多站点HTTPS安全访问,并验证服务器性能参数。
实验环境与软件准备 实验前需确保系统已安装必要组件,通过yum命令安装Apache、MySQL及PHP相关软件包:
yum install httpd mysql-server php php-mysql -y
安装完成后启动关键服务并设置开机自启:
systemctl start httpd mysqld systemctl enable httpd mysqld
防火墙需开放HTTP(80)和HTTPS(443)端口:

firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
核心配置步骤
- 基础配置文件修改
编辑Apache主配置文件
/etc/httpd/conf/httpd.conf,修改以下关键参数:
- ServerName:设置为服务器IP地址或域名
- DocumentRoot:指定网站根目录(如/var/www/html)
- DirectoryIndex:添加index.php作为默认首页
-
虚拟主机配置 创建两个虚拟主机站点(site1.com和site2.com),配置文件如下:
<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/site1 ErrorLog logs/site1_error.log CustomLog logs/site1_access.log combined </VirtualHost>
为site2.com创建类似配置后,执行
httpd -t检查语法正确性,重启服务使配置生效。 -
SSL证书部署 使用Let's Encrypt生成免费证书:
(图片来源网络,侵删)certbot certonly --webroot -w /var/www/site1 -d site1.com
在虚拟主机配置中添加SSL相关指令:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/site1.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/site1.com/privkey.pem </VirtualHost>
-
数据库配置 初始化MySQL安全设置:
mysql_secure_installation
创建测试数据库及用户:
CREATE DATABASE webdb; CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON webdb.* TO 'webuser'@'localhost'; FLUSH PRIVILEGES;
性能优化与安全加固
-
配置静态文件缓存 在httpd.conf中添加:
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpeg "access plus 1 week" ExpiresByType text/css "access plus 1 day" </IfModule>
-
限制访问权限 配置.htaccess文件保护敏感目录:
<Directory /var/www/private> Order deny,allow Deny from all Allow from 192.168.1.0/24 </Directory>
-
启用GZIP压缩 添加mod_deflate模块配置:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css </IfModule>
测试结果与分析 通过ab工具进行压力测试:
ab -n 1000 -c 100 http://site1.com/
测试结果显示,优化前服务器每秒请求数(Requests per second)为85.3,优化后提升至142.7,性能提升显著,安全扫描工具Nessus检测显示,配置后的服务器仅存在2个低风险漏洞(均为非关键项)。
实验总结 本次实验成功实现了多站点Web服务器的安全部署,验证了虚拟主机配置、HTTPS加密及性能优化的有效性,关键结论如下:
- 虚拟主机通过独立配置文件实现多站点隔离,便于管理
- SSL证书部署使数据传输加密,提升安全性
- 静态缓存和GZIP压缩可有效降低服务器负载
实验过程中遇到的常见问题包括:权限配置错误导致403访问被拒,需检查DocumentRoot目录权限;SSL证书自动续期失败,需确保certbot定时任务正确设置,通过查阅官方文档和日志分析(tail -f /var/log/httpd/error_log)均得到解决。
相关问答FAQs:
-
Q: 访问虚拟主机时出现"403 Forbidden"错误,如何排查? A: 首先检查DocumentRoot目录权限是否为755(如:chmod 755 /var/www/site1),其次确认SELinux状态(getenforce),若为 enforcing 需执行 chcon -R -t httpd_sys_content_t /var/www/site1,最后检查.htaccess文件语法是否正确,可通过httpd -t验证配置。
-
Q: 如何实现Web服务器的负载均衡? A: 可通过配置Apache的mod_proxy模块实现反向代理负载均衡,示例配置如下:
<Proxy balancer://mycluster> ProxySet lbmethod=bytraffic BalancerMember http://192.168.1.10:80 BalancerMember http://192.168.1.11:80 </Proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/此配置将流量根据访问量动态分配到后端两台服务器,同时需确保后端服务器已启用keepalived会话保持功能。
