Nginx进阶配置指南:HTTPS部署 + Gzip压缩 + 防盗链
Nginx是一款高性能的Web服务器,通过进阶配置可以提升网站的安全性、性能和资源保护。本指南将详细说明如何配置HTTPS(使用Let's Encrypt免费证书)、Gzip压缩和防盗链功能。配置过程基于Nginx标准语法,确保真实可靠。请确保在修改Nginx配置文件(通常位于/etc/nginx/nginx.conf或站点配置文件)后,执行nginx -t测试语法,并使用systemctl reload nginx重新加载配置。
1. HTTPS部署(使用Let's Encrypt证书)
HTTPS通过SSL/TLS加密数据传输,提升安全性和SEO排名。Let's Encrypt提供免费、自动化的证书颁发服务,推荐使用Certbot工具简化流程。
步骤说明:
安装Certbot:在服务器上安装Certbot及其Nginx插件(以Ubuntu为例)。
sudo apt update
sudo apt install certbot python3-certbot-nginx
获取并安装证书:运行Certbot命令自动配置Nginx。
sudo certbot –nginx -d example.com -d www.example.com # 替换example.com为您的域名
Certbot会自动修改Nginx配置,添加SSL相关设置,并处理证书续期。
手动配置Nginx(可选):如果需自定义,编辑Nginx配置文件,添加SSL监听和证书路径。
server {
listen 443 ssl; # 监听HTTPS端口
server_name example.com www.example.com; # 您的域名
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # 证书路径
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 私钥路径
ssl_protocols TLSv1.2 TLSv1.3; # 推荐使用安全协议
ssl_ciphers HIGH:!aNULL:!MD5; # 加密套件配置
# 其他内容配置,如root目录等
location / {
root /var/www/html;
index index.html;
}
}
强制HTTP重定向到HTTPS:添加一个新server块,将所有HTTP请求重定向。
server {
listen 80; # 监听HTTP端口
server_name example.com www.example.com;
return 301 https://$host$request_uri; # 301永久重定向到HTTPS
}
注意事项:
- 证书每90天自动续期,Certbot会通过cron任务处理。
- 测试HTTPS:访问https://example.com,确保浏览器显示锁图标。
- 安全性增强:启用HSTS(添加add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;)。
2. Gzip压缩配置
Gzip压缩可减小文本文件传输大小,提升加载速度,适用于HTML、CSS、JS等文件。Nginx内置Gzip模块,易于启用。
步骤说明:
启用Gzip:在Nginx配置文件的http块中添加全局设置。
http {
gzip on; # 开启Gzip
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 压缩类型
gzip_min_length 1000; # 最小压缩文件大小(字节),避免小文件压缩
gzip_comp_level 6; # 压缩级别(1-9),6为平衡点
gzip_proxied any; # 对所有代理请求启用压缩
gzip_vary on; # 添加Vary头,兼容缓存
# 其他http级配置…
}
应用到特定站点:如果需在server块中覆盖,可直接添加相同指令。
server {
listen 443 ssl;
server_name example.com;
gzip on;
gzip_types application/javascript text/css;
# 其他站点配置…
}
注意事项:
- 测试压缩效果:使用curl检查响应头,curl -I -H "Accept-Encoding: gzip" http://example.com应显示Content-Encoding: gzip。
- 避免压缩二进制文件:如图片或视频,可能适得其反。
- 性能影响:高压缩级别(如9)会增加CPU负载,建议测试后优化。
3. 防盗链配置
防盗链(Hotlink Protection)防止其他网站直接引用您的资源(如图片、视频),节省带宽并保护内容。Nginx通过验证HTTP Referer头实现。
步骤说明:
基本防盗链配置:在server块中添加location指令,针对特定文件类型(如图片)。
server {
listen 443 ssl;
server_name example.com;
location ~* \\.(jpg|jpeg|png|gif|mp4)$ { # 匹配常见资源扩展名
valid_referers none blocked example.com *.example.com; # 允许的来源:无来源、已拦截、自身域名
if ($invalid_referer) { # 如果来源无效
return 403; # 返回403禁止访问
# 或返回自定义错误图片:rewrite ^ /path/to/deny.png;
}
# 其他资源处理,如设置过期头
expires 30d;
}
}
允许空Referer(可选):none表示允许直接访问(如浏览器地址栏输入),blocked允许部分屏蔽的Referer。
注意事项:
- 测试防盗链:使用浏览器或工具模拟不同Referer访问资源URL,无效来源应返回403。
- 性能优化:避免在频繁请求的路径使用if指令,可考虑map模块替代。
- 自定义处理:可替换为返回水印图片或重定向。
总结
通过上述配置,您的Nginx服务器将实现:
- HTTPS部署:使用Let's Encrypt证书,确保安全加密。
- Gzip压缩:优化传输效率,提升用户体验。
- 防盗链:保护资源,防止滥用。
配置后,务必使用nginx -t验证语法,再重新加载服务。建议定期监控日志(/var/log/nginx/access.log)以调整参数。如有问题,查阅Nginx官方文档或社区支持。




