Nginx配置最佳实践:这10个配置技巧你必须掌握!

Nginx是大型架构的必备技能,下面我重点详解Nginx配置@mikechen

Nginx配置最佳实践:这10个配置技巧你必须掌握!-mikechen

1. 合理设置worker进程数

Nginx采用Master-Worker进程模型,Master进程负责管理Worker进程,Worker进程负责处理实际的请求。

Worker进程数的设置应根据服务器的CPU核心数来确定,通常设置为CPU核心数的1到2倍。

worker_processes auto; # 自动检测CPU核心数,推荐
# worker_processes 4; # 如果你的CPU是4核

 

2.配置工作连接数

worker_connections 配置项决定了每个工作进程可以同时处理的最大连接数。

最佳实践: 确保这个值足够大,以应对你的流量峰值。

计算公式: 服务器能处理的最大并发连接数 = worker_processes * worker_connections。

events {
    worker_connections 1024;
}

 

3. 启用gzip压缩

gzip压缩可以显著减小HTTP响应的大小,从而加快页面加载速度。在Nginx中启用gzip压缩非常简单,只需在配置文件中添加以下几行:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml 
gzip_proxied any;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;

4. 配置浏览器缓存

浏览器缓存可以减少重复请求,从而减轻服务器负担并提高用户体验。通过设置HTTP响应头中的Cache-ControlExpires字段,可以控制浏览器缓存行为。

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    expires 30d;
    access_log off;
}

5. 限制请求体大小

为了防止恶意用户上传过大的文件,Nginx可以限制请求体的大小。

client_max_body_size 100m;

6. 配置SSL/TLS

为您的网站配置SSL/TLS可以加密通信,保护用户数据安全。建议使用Let’s Encrypt等免费SLL证书。

7. 开启HTTP/2

HTTP/2是HTTP协议的最新版本,它在性能方面有显著提升。在Nginx中开启HTTP/2非常简单,只需在listen指令中添加http2参数。

listen 443 ssl http2;

8. 设置连接超时

适当设置连接超时时间可以防止恶意连接长时间占用服务器资源。

client_header_timeout 15s;
client_body_timeout 15s;
send_timeout 15s;

9. 隐藏Nginx版本信息

为了提高安全性,建议隐藏Nginx的版本信息,避免攻击者利用已知漏洞。

server_tokens off;

10. 使用LUA扩展

Nginx可以通过LUA扩展实现更复杂的功能,例如WAF(Web应用防火墙)、API网关等。

通过掌握以上10个Nginx配置最佳实践,您可以显著提升Nginx的性能、安全性和稳定性,为您的Web服务保驾护航。

评论交流
    说说你的看法