Ubuntu Nginx SSL与HTTP区别是什么
导读:Ubuntu 上 Nginx 的 HTTP 与 SSL/HTTPS 差异与配置要点 一、核心差异概览 协议栈与端口:HTTP 直接基于 TCP 80;HTTPS 是 HTTP over SSL/TLS,默认基于 TCP 443。 传输安全...
Ubuntu 上 Nginx 的 HTTP 与 SSL/HTTPS 差异与配置要点
一、核心差异概览
- 协议栈与端口:HTTP 直接基于 TCP 80;HTTPS 是 HTTP over SSL/TLS,默认基于 TCP 443。
- 传输安全:HTTP 为明文;HTTPS 通过 TLS 进行加密、身份认证与完整性校验。
- 证书要求:HTTP 不需要证书;HTTPS 必须配置由 CA 签发的服务器证书/私钥(测试可用自签名)。
- 性能开销:HTTPS 多了 TLS 握手与加解密,通常比 HTTP 多约 2–100 倍的计算开销(现代硬件与 TLS 1.3 已大幅优化)。
- SEO 与信任:主流浏览器对 HTTP 表单提示**“不安全”**,搜索引擎更偏好 HTTPS 站点。
二、Nginx 配置差异与示例
- 模块与编译:启用 HTTPS 需 Nginx 编译进 ngx_http_ssl_module;可通过 nginx -V 查看是否包含该模块。
- 典型配置示例:
- HTTP(端口 80)
server { listen 80; server_name example.com; location / { root /var/www/html; index index.html; } } - HTTPS(端口 443,TLS)
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/fullchain.pem; # 证书链 ssl_certificate_key /etc/nginx/ssl/privkey.pem; # 私钥 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; location / { root /var/www/html; index index.html; } } - HTTP→HTTPS 跳转(推荐 301 永久重定向)
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
- HTTP(端口 80)
三、在 Ubuntu 上的实践要点
- 检查与启用模块:执行 nginx -V,确认输出中包含 –with-http_ssl_module;若缺失,需重新编译或安装包含该模块的版本。
- 证书获取与放置:生产环境向 CA 申请证书(如 Let’s Encrypt);测试可用 OpenSSL 生成自签名证书(注意仅用于测试)。
- 防火墙与监听:确保 UFW/iptables 放行 443/TCP;Nginx 配置中监听 443 ssl。
- 验证与生效:使用 nginx -t 检查配置,执行 systemctl reload nginx 使配置生效;访问 https:// 并使用浏览器查看证书与锁标识。
四、进阶差异与选择建议
- 协议演进与性能:在 HTTPS 之上可启用 HTTP/2(多路复用、头部压缩,需 TLS 1.2+),或 HTTP/3/QUIC(基于 UDP、内置 TLS 1.3、减少队头阻塞,需较新 Nginx 与模块/编译支持)。
- 何时必须使用 HTTPS:涉及登录/支付/隐私数据的站点应全站 HTTPS;同时有助于 SEO 与用户信任。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Nginx SSL与HTTP区别是什么
本文地址: https://pptw.com/jishu/784894.html
