Apache 24作为目前广泛使用的Web服务器软件,其配置的灵活性和安全性对网站运行至关重要,合理的配置不仅能提升服务器性能,还能有效防范各类网络攻击,以下从基础配置、虚拟主机设置、安全优化及性能调优四个方面,详细介绍Apache 24的配置方法。
基础环境安装与核心配置文件
在开始配置前,需确保系统已正确安装Apache 24,以CentOS系统为例,可通过yum install httpd
命令安装,安装后主配置文件位于/etc/httpd/conf/httpd.conf
,这是整个服务器的核心配置文件。
核心参数调整
打开httpd.conf
,首先修改服务器基本信息:
ServerRoot
:指定Apache的安装根目录,默认为/etc/httpd
,无需修改除非自定义安装路径。Listen
:设置监听端口,默认为80,若需支持HTTPS需额外配置443端口。ServerName
:定义服务器域名或IP地址,建议配置为实际访问地址,如ServerName www.example.com:80
,避免启动时警告。ServerAdmin
:设置管理员邮箱,用于错误通知。
服务管理
安装完成后,可通过以下命令控制服务状态:
systemctl start httpd # 启动服务 systemctl enable httpd # 设置开机自启 systemctl status httpd # 查看服务状态
虚拟主机配置
虚拟主机允许在同一台服务器上托管多个网站,Apache 24支持基于IP、端口和域名的三种虚拟主机模式,最常用的是基于域名的配置。
创建虚拟主机配置文件
在/etc/httpd/conf.d/
目录下创建配置文件,如example.conf
(该目录下的文件会自动被主配置文件加载),内容如下:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "/var/www/example.com" ServerName www.example.com ServerAlias example.com ErrorLog "/var/log/httpd/example.com_error.log" CustomLog "/var/log/httpd/example.com_access.log" combined </VirtualHost>
DocumentRoot
:网站根目录,需提前创建并设置权限(chown -R apache:apache /var/www/example.com
)。ServerAlias
:定义附加域名,访问时自动跳转到主域名。ErrorLog
与CustomLog
:分别记录错误日志和访问日志,combined
为常用日志格式,包含客户端信息、请求方法等。
虚拟主机配置示例
以下为多域名虚拟主机配置,支持两个独立网站:
域名 | 网站根目录 | 日志文件路径 |
---|---|---|
www.site1.com | /var/www/site1.com | /var/log/httpd/site1_error.log |
www.site2.com | /var/www/site2.com | /var/log/httpd/site2_error.log |
配置文件示例:
<VirtualHost *:80> DocumentRoot "/var/www/site1.com" ServerName www.site1.com ErrorLog "/var/log/httpd/site1_error.log" CustomLog "/var/log/httpd/site1_access.log" combined </VirtualHost> <VirtualHost *:80> DocumentRoot "/var/www/site2.com" ServerName www.site2.com ErrorLog "/var/log/httpd/site2_error.log" CustomLog "/var/log/httpd/site2_access.log" combined </VirtualHost>
配置完成后,执行httpd -t
检查语法是否正确,若无错误则重启服务使配置生效。
安全优化配置
安全是Web服务器配置的重中之重,以下为Apache 24的常用安全措施。
禁用目录列表
默认情况下,若目录下无索引文件(如index.html),Apache会列出目录内容,为防止信息泄露,需禁用目录列表:
<Directory "/var/www"> Options -Indexes </Directory>
限制访问IP
通过Require
指令限制特定IP访问,仅允许信任的IP访问管理页面:
<Directory "/var/www/admin"> Require ip 192.168.1.100 # 仅允许该IP访问 AuthType Basic AuthName "Admin Area" AuthUserFile /etc/httpd/.htpasswd Require valid-user </Directory>
需使用htpasswd -c /etc/httpd/.htpasswd username
创建密码文件。
隐藏版本信息
修改httpd.conf
中的ServerTokens
和ServerSignature
,隐藏Apache版本号:
ServerTokens Prod # 返回"Apache"而非版本号 ServerSignature Off # 关闭错误页面的服务器签名
防盗链配置
通过mod_rewrite
模块防止其他网站盗用本站资源:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/.*$ [NC] RewriteRule .(jpg|jpeg|png|gif|bmp)$ - [F,L] </IfModule>
仅允许本站域名访问图片资源,其他请求返回403错误。
性能调优策略
合理配置参数可显著提升Apache处理请求的能力。
MPM模块选择
Apache 24支持多种多处理模块(MPM),根据服务器类型选择:
prefork
:兼容性好但内存占用高,适合有模块需求的场景。worker
:支持多线程,内存效率高,适合高并发场景。event
:基于worker优化,适合处理大量Keep-Alive连接。
通过httpd -M | grep mpm
查看当前使用的MPM模块,编辑/etc/httpd/conf.modules.d/00-mpm.conf
切换模块。
关键性能参数
以prefork
模块为例,调整以下参数:
<IfModule mpm_prefork_module> StartServers 5 # 启动时进程数 MinSpareServers 5 # 最小空闲进程 MaxSpareServers 10 # 最大空闲进程 MaxRequestWorkers 150 # 最大并发进程数 MaxConnectionsPerChild 0 # 进程最大处理请求数,0表示无限制 </IfModule>
参数需根据服务器内存和并发量调整,避免因进程过多导致内存耗尽。
启用压缩与缓存
- 启用GZIP压缩:通过
mod_deflate
模块压缩传输内容:<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript DeflateCompressionLevel 6 </IfModule>
- 设置缓存:利用
mod_expires
模块让浏览器缓存静态资源:<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access plus 1 week" </IfModule>
Apache 24的配置需结合实际需求,从基础环境搭建到虚拟主机部署,再到安全与性能优化,每个环节都需仔细斟酌,定期检查日志文件、更新模块版本,并根据访问量动态调整参数,才能确保服务器稳定高效运行,通过以上配置,可构建一个安全、高性能的Apache Web服务器环境。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/18192.html