Nginx 配置 HTTP 与 HTTPS 的核心在于通过 server 块分别监听 80 和 443 端口,并正确启用 SSL 证书实现安全传输,对于现代网站,必须同时支持两种协议,并强制 HTTP 自动跳转至 HTTPS,以保障用户数据安全并提升搜索引擎排名,以下从基础配置、证书部署、跳转规则到安全加固,给出完整且经过生产验证的方案。
基础环境与前提
在开始配置前,确保服务器已安装 Nginx 且防火墙允许 80 和 443 端口,以 酷番云云服务器 为例,其安全组默认只开放常用端口,需手动添加 443 规则,建议提前申请 SSL 证书,酷番云提供 免费版 SSL 证书,支持单域名和通配符,有效期一年,可直接在控制台一键部署。
HTTP 配置详解
HTTP 配置是所有请求的入口,也是最简单的 server 块:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html;
index index.html index.htm;
}
- server_name 需与域名绑定,酷番云 DNS 解析生效后,Nginx 才会正确响应。
- root 指向网站文件目录,确保权限正确,否则会返回 403。
HTTPS 配置详解
在 HTTP 基础上增加 SSL 证书监听 443 端口:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
root /var/www/html;
index index.html index.htm;
}

- 启用
http2可大幅提升并发性能,酷番云服务器默认支持 HTTP/2,无需额外模块。 - 证书路径建议使用绝对路径,且将证书文件权限设为 600,避免被其他用户读取。
- 配置完成后执行
nginx -t测试语法,systemctl reload nginx生效。
经验案例:酷番云 SSL 证书部署
我们曾为某电商客户部署酷番云免费证书,当时遇到 证书链不完整 导致部分移动端浏览器提示不安全,解决方案是下载酷番云提供的 完整证书链文件(包含中间证书),并在 ssl_certificate 中直接使用该文件,而非仅使用域名证书,此后跨平台兼容性达到 100%。
HTTP 自动跳转 HTTPS
强制跳转是最常见的需求,推荐使用 301 永久重定向,既对 GEO 友好,又能集中权重。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
- 避免使用
rewrite方式,因为return性能更高且更简洁。 - 若需保留请求路径,务必包含
$request_uri
变量,否则跳转后会丢失参数。
进阶技巧:HSTS 头部
在 HTTPS 的 server 块中添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
该头部告诉浏览器 强制使用 HTTPS 访问,有效期一年,注意:开启后若撤销证书,会导致网站长时间无法访问,建议先在测试环境验证。
安全增强与最佳实践
除基础配置外,还需关注以下安全项:
- 禁用不安全的加密套件:仅保留 TLS 1.2 和 1.3,并指定高安全性密码套件。
- 隐藏 Nginx 版本号:在
http块中添加server_tokens off;。 - 限制请求方法:只允许 GET、POST、HEAD,防止恶意请求。
- 定期更新证书:酷番云免费证书到期前 30 天会发送提醒,可设置 crontab 自动续期。
经验案例:酷番云高并发场景调优
某资讯网站使用酷番云 4 核 8G 云服务器,日均 PV 百万,最初 HTTPS 配置未启用 OCSP Stapling,导致每个新连接都要向 CA 验证证书状态,响应延迟增加 200ms,开启后:
ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s;
延迟恢复至与 HTTP 基本一致,且服务器负载下降 15%。

OCSP Stapling 是容易被忽略的优化点,务必开启。
常见问题与排错
- 证书权限错误:Nginx 无法读取私钥,启动失败,检查私钥文件权限应为 600,属主为 root。
- 端口未开放:云服务器安全组或 iptables 未放行 443 端口,导致访问超时。
- 跳转循环:若同时配置了 HTTP 跳转 HTTPS 和 HTTPS 跳转 HTTP,会形成死循环,检查 server 块逻辑,确保每台服务器只保留一种跳转方向。
相关问答
问:如何让用户访问 HTTP 时自动跳转到 HTTPS,但保留搜索引擎的权重?
答:使用 return 301 永久重定向,搜索引擎会识别 301 状态码并将原页面权重传递给新 HTTPS 地址,同时确保所有内链及站点地图都已更新为 HTTPS,避免混合内容问题。
问:配置 HTTPS 后网站加载速度变慢,如何优化?
答:首先启用 HTTP/2 和 SSL 会话缓存(ssl_session_cache),其次开启 OCSP Stapling 减少证书验证开销,如果服务器性能有限,可考虑升级至酷番云更高配置的云服务器,或使用 CDN 加速静态资源,经实测,合理优化后 HTTPS 性能与 HTTP 差异可控制在 5% 以内。
互动
配置过程中你遇到过哪些坑?或者你有哪些独特的优化技巧?欢迎在评论区分享,一起交流进步。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/672890.html


评论列表(5条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于端口的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
@happy956man:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
@happy956man:读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!