CentOS Apache 配置优化 SEO 实操指南
一 基础安全与 HTTPS
示例 VirtualHost(/etc/httpd/conf.d/yourdomain.conf):
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/yourdomain
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
# 启用 HTTP/2
Protocols h2 http/1.1
# 安全头
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
ErrorLog ${APACHE_LOG_DIR}/yourdomain_error.log
CustomLog ${APACHE_LOG_DIR}/yourdomain_access.log combined
</VirtualHost>
证书获取与自动续期(Certbot):
sudo yum install -y certbot python2-certbot-apache
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
# 建议将续期加入定时任务(certbot 默认会创建 systemd timer)
防火墙放行:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
以上配置覆盖 HTTPS、HSTS、HTTP/2 与关键安全头,直接作用于排名与抓取体验。
二 性能与传输优化
建议配置(可放入主配置或对应 VirtualHost 的
# Gzip 压缩
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css \
text/javascript application/javascript application/json application/xml \
image/svg+xml image/x-icon font/woff font/woff2 font/ttf
</IfModule>
# 浏览器缓存
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 hour"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
</IfModule>
# 长连接
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
要点:HTML 通常设置较短(便于内容更新),静态资源设置更长(利用强缓存与文件名哈希)。如需更激进的缓存,可将 CSS/JS 提升至 1 year,但务必配合构建产物的文件名哈希或版本号策略。
三 URL 结构与可抓取性
示例重写与规范域名(放在 VirtualHost 内):
# 规范域名(将 www 重定向到 non-www;如需相反方向请调换规则)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ https://yourdomain.com/$1 [L,R=301]
# 前端路由/美化URL(如 SPA 或伪静态)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
# 自定义 404
ErrorDocument 404 /404.html
# 性能:关闭 DNS 反向查询
HostnameLookups Off
上述措施提升抓取效率与用户体验,减少重复内容与链接信号分散。
四 模块启用与系统调优
启用模块示例:
# RHEL/CentOS 7/8(模块名与包名可能不同,以下为常见做法)
sudo yum install -y mod_ssl mod_headers mod_deflate mod_expires mod_rewrite mod_http2
# 如启用磁盘缓存
sudo yum install -y httpd-mod_cache httpd-mod_disk_cache
# 检查与启用(部分系统需手动 LoadModule,或 a2enmod 风格工具)
sudo systemctl restart httpd
MPM 与缓存属于进阶优化,建议结合访问量与后端能力逐步调参,先基准测试再上线。
五 验证与监控
以上配置从安全、速度、可抓取性到可运维性逐层优化,能直接作用于搜索引擎排名与用户体验的核心信号。