debian

Nginx SSL怎样优化Debian性能

小樊
37
2025-10-06 20:35:31
栏目: 云计算

1. 更新Nginx与SSL证书至最新版本
确保系统安装最新版本的Nginx(通过sudo apt update && sudo apt upgrade nginx)和SSL证书(如Let’s Encrypt证书),以获取最新的安全补丁与性能优化。Let’s Encrypt证书可通过Certbot自动续期,避免过期导致的性能下降或服务中断。

2. 启用HTTP/2协议
HTTP/2支持多路复用(Multiplexing)与头部压缩(HPACK),能显著减少延迟并提高并发处理能力。在Nginx配置文件的server块中添加listen 443 ssl http2;指令即可启用(需确保OpenSSL版本≥1.0.2)。

3. 优化SSL/TLS协议与加密套件

4. 配置SSL会话缓存与会话票据

5. 启用OCSP Stapling
OCSP Stapling允许服务器主动获取证书状态(而非客户端查询),减少SSL握手时间。配置如下:

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

需确保证书链完整(包含中间证书)。

6. 启用HSTS(HTTP Strict Transport Security)
通过add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;指令,强制浏览器仅通过HTTPS访问网站,避免HTTP降级攻击,同时减少后续请求的SSL握手次数。

7. 调整Nginx工作进程与连接数

8. 优化TCP与内核参数
编辑/etc/sysctl.conf文件,添加以下参数以优化TCP性能:

net.core.somaxconn = 65535  # 监听队列最大长度
net.ipv4.tcp_max_syn_backlog = 65535  # SYN队列最大长度
net.ipv4.ip_local_port_range = 1024 65535  # 本地端口范围
net.ipv4.tcp_tw_reuse = 1  # 复用TIME_WAIT连接
net.ipv4.tcp_fin_timeout = 30  # TIME_WAIT超时时间(秒)

应用更改:sudo sysctl -p

9. 启用Gzip压缩
通过Gzip压缩减少传输数据量,提高页面加载速度。在Nginx配置文件的httpserver块中添加:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;  # 压缩级别(1-9,6为平衡值)
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;  # 最小压缩文件大小(字节)

避免对图片、视频等二进制文件压缩(已压缩的文件再次压缩效果差)。

10. 配置静态文件缓存
通过设置HTTP响应头,让浏览器缓存静态文件(如图片、CSS、JS),减少重复请求。在server块中添加:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|woff|ttf)$ {
    expires 30d;  # 缓存时间(可根据需求调整)
    add_header Cache-Control "public, no-transform";
}

no-transform指令防止代理服务器修改内容(如压缩)。

11. 启用sendfile与TCP优化

12. 调整文件描述符限制
Nginx处理大量并发连接时,需增加文件描述符限制。编辑/etc/security/limits.conf文件,添加:

* soft nofile 65535
* hard nofile 65535

编辑/etc/pam.d/common-session/etc/pam.d/common-session-noninteractive文件,添加:

session required pam_limits.so

重启系统或重新登录使更改生效。

0
看了该问题的人还看了