Apache HTTP Server(简称 Apache)是由 Apache 软件基金会开发和维护的开源 Web 服务器软件,自 1995 年发布以来一直是 Web 服务器的标杆。Apache 的名字来源于 "a patchy server"(补丁服务器),反映了其早期的开发方式。
Apache 的核心定位是 功能丰富、高度可定制的 Web 服务器。它提供了:
Apache 的前身是 NCSA HTTPd 服务器。1995 年,一群开发者开始给 NCSA HTTPd 打补丁,最终形成了 "Apache" 服务器。Apache 1.0 于 1995 年 12 月正式发布,标志着 Apache 软件基金会的诞生。
# /etc/apache2/apache2.conf 主配置文件
ServerRoot "/etc/apache2"
# 监听端口
Listen 80
# 加载模块
LoadModule php_module modules/libphp.so
# MPM 配置
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 3000
# 虚拟主机
IncludeOptional sites-enabled/*.conf
# /etc/apache2/sites-available/example.com.conf
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example
# 目录配置
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
# 日志配置
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
# 默认文档
DirectoryIndex index.html index.php
# 别名
Alias /admin /var/www/admin
# .htaccess 文件(目录级配置)
# 启用重写引擎
RewriteEngine On
# URL 重写
RewriteRule ^blog/(.*)$ /index.php?page=blog&slug=$1 [L]
# 301 重定向
Redirect 301 /old-page.html /new-page.html
# 密码保护
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/.htpasswd
Require valid-user
# 缓存控制
Header set Cache-Control "public, max-age=31536000"
# 禁止访问特定文件
Require all denied
# 典型重写规则
# 强制 HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# 去除 www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# 删除尾部斜杠
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]
# 路由转发(WordPress 风格)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
# API 路由
RewriteRule ^api/users/([0-9]+)$ users.php?id=$1 [L]
ServerName example.com
DocumentRoot /var/www/example
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.crt
SSLCertificateKeyFile /etc/ssl/private/example.key
SSLCertificateChainFile /etc/ssl/certs/chain.crt
# 安全配置
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
AllowOverride All
Require all granted
# mod_php 方式(传统)
LoadModule php_module modules/libphp.so
AddHandler php-script .php
AddType text/html .php
# PHP-FPM 方式(推荐,使用 proxy_fcgi)
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
Apache 安装、基本配置、虚拟主机、目录配置
.htaccess 配置、mod_rewrite 重写规则、SSL 配置
MPM 调优、认证授权、反向代理、负载均衡
缓存配置、压缩(mod_deflate)、模块管理
Apache 是 Web 服务器的活化石。
从 1995 年至今,Apache 已经走过了近 30 年的历程。虽然在高并发场景下被 Nginx 超越,但 Apache 的 灵活配置、模块化架构、.htaccess 支持 让它在共享主机和传统托管领域依然坚挺。
如果你需要 高度可定制的 Web 服务器,或者你的项目部署在共享主机上,Apache 仍然是可靠的选择。
"Apache 是 Web 服务器领域的常青树。" 🌳