Ubuntu下用Nginx提升SEO的可落地方案
一 基础规范与选型
二 核心Nginx配置示例
# /etc/nginx/sites-available/yourdomain.conf
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 统一到 https://www.yourdomain.com
return 301 https://www.yourdomain.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.yourdomain.com;
root /var/www/yourdomain;
index index.html index.htm;
# SSL证书(Let's Encrypt示例路径)
ssl_certificate /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.yourdomain.com/privkey.pem;
# 安全与兼容性
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 性能:开启Gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1024;
# 性能:长连接
keepalive_timeout 65;
keepalive_requests 100;
# 性能:静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# 安全:隐藏版本
server_tokens off;
# SEO友好:规范化路径(末尾斜杠一致性)
location = / {
try_files $uri /index.html;
}
location / {
try_files $uri $uri/ =404;
# 若使用前端路由(如SPA),可改为:try_files $uri $uri/ /index.html;
}
# 可选:安全屏蔽敏感文件
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install certbot python3-certbot-nginx
sudo ufw allow 'Nginx Full' # 或 ufw allow 443/tcp
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
以上配置覆盖了HTTPS、HTTP/2、Gzip、长连接、缓存、安全与规范化路径等SEO关键要素。
三 内容分发与日志分析
四 验证与持续维护