首先搭建apache web服务并进行性能调优,具体步骤为:1. 在centos上安装httpd并启动服务,设置开机自启;2. 配置防火墙放行http/https流量;3. 将网站文件部署至默认目录/var/www/html/或配置虚拟主机;4. 选择event mpm模式以提升高并发处理能力,并通过调整startservers、minsparethreads、maxsparethreads、threadsperchild、maxrequestworkers、maxconnectionsperchild和serverlimit等参数优化并发性能;5. 启用mod_deflate模块实现gzip压缩以减少传输数据量;6. 启用mod_expires模块设置静态资源缓存策略,提升加载速度;7. 禁用info、status、autoindex等不必要的模块以降低内存消耗和安全风险;8. 合理配置keepalive参数,包括开启长连接、设置keepalivetimeout为5秒、maxkeepaliverequests为100,以平衡连接复用与资源占用;9. 使用rotatelogs工具实现日志轮转,避免日志文件过大影响性能;10. 通过ss命令查看连接状态,使用ab工具进行压力测试,启用mod_status模块监控服务器实时状态;最终实现一个安全、高效、可扩展的apache web服务,建议静态资源由nginx或cdn处理,apache专注动态内容。

搭建 Web 服务并优化 Apache 是一个常见但关键的任务,尤其在高并发或资源有限的服务器环境中。下面从搭建 Web 服务和Apache 调优两个部分来详细说明。
一、如何搭建 Apache Web 服务(以 CentOS 为例)
-
安装 Apache(httpd)
sudo yum install httpd -y
或使用 dnf(CentOS 8+):
sudo dnf install httpd -y
-
启动并设置开机自启
sudo systemctl start httpd sudo systemctl enable httpd
-
防火墙放行 HTTP/HTTPS
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
测试访问 打开浏览器访问服务器 IP,看到 “Apache HTTP Server Test Page” 表示成功。
部署网站文件 默认网站根目录为
/var/www/html/
,将你的 HTML 文件放进去即可。-
配置虚拟主机(可选) 在
/etc/httpd/conf.d/
下创建.conf
文件,例如example.com.conf
:ServerName example.com DocumentRoot /var/www/html/example ErrorLog /var/log/httpd/example_error.log CustomLog /var/log/httpd/example_access.log combined 然后重启 Apache:
sudo systemctl restart httpd
二、Apache 性能调优关键点
Apache 的性能调优主要围绕并发处理能力、资源占用和响应速度展开。以下是核心调优方向:
1. 选择合适的 MPM 模块(多路处理模块)
Apache 支持三种 MPM:
prefork、
worker、
event。推荐使用
event模式(适合高并发)。
-
查看当前 MPM:
httpd -V | grep -i mpm
-
编辑配置文件启用 event 模块:
sudo vim /etc/httpd/conf.modules.d/00-mpm.conf
确保加载的是:
LoadModule mpm_event_module modules/mod_mpm_event.so
并注释掉其他 mpm(如 prefork、worker)。
2. 调整 event MPM 参数
编辑
/etc/httpd/conf/httpd.conf或单独的 MPM 配置文件(如
/etc/httpd/conf.modules.d/00-mpm.conf中包含的
mpm_event.conf):
StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 1000 ServerLimit 16
参数说明:
StartServers
:初始启动的进程数MinSpareThreads
/MaxSpareThreads
:空闲线程数范围ThreadsPerChild
:每个进程的线程数MaxRequestWorkers
:最大并发请求数(= 进程数 × 线程数)MaxConnectionsPerChild
:每个进程处理多少请求后重启(防止内存泄漏)ServerLimit
:最大进程数(需配合 ThreadsPerChild 计算 MaxRequestWorkers)
例如:16 个进程 × 25 线程 = 400 最大并发,符合 MaxRequestWorkers。
3. 启用 Gzip 压缩(mod_deflate)
减少传输数据量,提升加载速度。
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/json
4. 启用静态资源缓存(mod_expires)
让浏览器缓存静态文件,减少重复请求。
ExpiresActive On ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 week" ExpiresByType application/javascript "access plus 1 week"
5. 禁用不必要的模块
减少内存占用和攻击面:
httpd -M | grep -E "(info|status|autoindex|userdir)" # 查看是否加载了不必要的模块
在
/etc/httpd/conf.modules.d/中注释掉不需要的模块,例如:
# LoadModule autoindex_module modules/mod_autoindex.so # LoadModule userdir_module modules/mod_userdir.so
6. 优化 KeepAlive 设置
长连接能减少 TCP 握手开销,但过多会占用连接资源。
KeepAlive On KeepAliveTimeout 5 MaxKeepAliveRequests 100
KeepAliveTimeout
:连接保持时间(秒),建议 3~10MaxKeepAliveRequests
:单连接最大请求数,建议 50~100
7. 使用日志轮转和异步写入(可选)
避免日志过大影响性能,使用
rotatelogs或
cronolog分割日志。
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log 86400" combined
三、监控与测试
-
查看当前连接状态
sudo ss -tulnp | grep httpd
-
压力测试(使用 ab 工具)
ab -n 1000 -c 100 http://your-server/index.html
-
查看 Apache 状态(启用 mod_status)
SetHandler server-status Require ip 192.168.1.0/24 # 限制访问 IP 访问
http://your-server/server-status
查看实时状态。
小结
- 搭建 Apache 简单,关键是配置安全和虚拟主机。
- 调优核心是:选择 event MPM + 合理设置并发参数 + 启用压缩与缓存 + 关闭无用模块。
- 根据服务器内存和并发需求调整
MaxRequestWorkers
,避免内存溢出。 - 静态资源建议配合 Nginx 或 CDN,Apache 更适合动态内容(如 PHP)。
基本上就这些,不复杂但容易忽略细节。










