面试题答案
一键面试1. 安全加固相关因素及配置参数
- TLS 版本设置:
- 配置参数:在
nginx.conf
或相关虚拟主机配置文件中,使用ssl_protocols
参数。例如:ssl_protocols TLSv1.3;
(若要同时兼容部分旧客户端,可写成ssl_protocols TLSv1.2 TLSv1.3;
) - 对安全影响:TLSv1.3 相比之前版本有显著的安全提升,如更安全的密钥交换机制、0 - RTT 数据传输等。禁用旧版本(如 TLSv1.0 和 TLSv1.1)可防止诸如 POODLE、BEAST 等针对旧版本的安全漏洞。
- 配置参数:在
- 密码套件选择:
- 配置参数:使用
ssl_ciphers
参数。例如:ssl_ciphers HIGH:!aNULL:!MD5;
对于 TLSv1.3,可使用ssl_ciphersuites TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384;
- 对安全影响:选择强密码套件能确保数据加密的强度。避免使用弱密码套件(如
aNULL
、MD5
相关的),防止中间人攻击和密码破解。
- 配置参数:使用
- 证书配置:
- 配置参数:通过
ssl_certificate
和ssl_certificate_key
指定证书和私钥路径。例如:ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem;
- 对安全影响:正确配置有效、受信任的证书可确保客户端与服务器之间的身份验证。过期或无效证书可能导致安全警告,甚至中间人攻击成功。
- 配置参数:通过
- OCSP 装订:
- 配置参数:
ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s;
- 对安全影响:OCSP 装订允许服务器向客户端提供证书状态信息,无需客户端额外查询 OCSP 服务器。这提高了安全性,因为它能及时反映证书的吊销状态,防止使用已吊销证书进行连接。
- 配置参数:
2. 性能调优相关因素及配置参数
- 连接处理:
- 配置参数:
worker_connections
定义每个 worker 进程能处理的最大连接数。例如:worker_connections 1024;
- 对性能影响:适当增大此值可提高 Nginx 在高并发下的连接处理能力,但过高的值可能导致系统资源耗尽。
- 配置参数:
- 缓存配置:
- 配置参数:对于静态资源,可设置
expires
指令。例如:location ~ \.(jpg|png|css|js)$ { expires 30d; }
- 对性能影响:合理设置缓存时间,可减少重复请求相同资源,降低服务器负载,提高响应速度。
- 配置参数:对于静态资源,可设置
- TLS 会话复用:
- 配置参数:使用
ssl_session_cache
配置会话缓存。例如:ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
- 对性能影响:TLS 会话复用允许客户端在后续连接中重用之前的会话密钥,减少完整握手开销,提高性能,特别是在高并发短连接场景下效果显著。
- 配置参数:使用
- 优化网络 I/O:
- 配置参数:
sendfile on; tcp_nopush on; tcp_nodelay on;
- 对性能影响:
sendfile
启用零拷贝机制,减少数据拷贝次数,提高文件传输效率。tcp_nopush
结合sendfile
可一次性发送响应头和数据,减少网络包数量。tcp_nodelay
禁用 Nagle 算法,确保及时发送小数据包,提高实时性。
- 配置参数: