LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Nginx性能优化10大技巧,线上必备!

admin
2025年9月11日 21:14 本文热度 148

1. 使用事件驱动模型

Nginx 采用事件驱动(event-driven)模型来处理请求,而不是为每个连接创建一个新的进程或线程。

这使得 Nginx 能够以更低的资源消耗处理大量并发连接。

 

2. 优化 Worker 进程配置

worker_processes 参数决定了 Nginx 启动多少个 worker 进程。一

个常见的做法是将这个值设置为服务器的 CPU 核心数,这样可以充分利用所有 CPU 资源。

  1. worker_processesauto;

worker_connections 参数定义了每个 worker 进程可以处理的最大并发连接数。建议将这个值设置得足够大,例如 1024 或更高,以满足高并发需求。

  1. events{
  2. worker_connections2048;
  3. }

 

3. 启用 gzip 压缩

Gzip 压缩:可以显著减少发送给客户端的数据量,从而加快网页加载速度。

  1. gzipon;
  2. gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  3. gzip_proxied any;
  4. gzip_comp_level5;
  5. gzip_buffers168k;
  6. gzip_varyon;

注意gzip_proxied any; 表示代理服务器会压缩所有请求。gzip_comp_level 设置压缩级别,1是最低压缩,9是最高。建议使用中等值,例如 5。

4. 静态文件缓存

通过设置适当的 HTTP 缓存头,可以指导浏览器缓存静态文件(如图片、CSS、JS)。这可以减少重复请求,减轻服务器压力。

  1. location~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|eot|ttf)${
  2. expires30d;
  3. add_headerCache-Control"public, no-transform";
  4. }

expires 30d; 指示浏览器缓存这些文件 30 天。

5. 使用缓存来加速动态内容

对于动态内容,可以使用 Nginx 的 fastcgi_cache 或 proxy_cache 来缓存后端应用(如 PHP-FPM, Node.js)的响应。

  1. http{
  2. # 定义缓存区域
  3. fastcgi_cache_path/var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
  4. fastcgi_cache_key"$scheme$request_method$host$request_uri";
  5. server{
  6. location~ \.php${
  7. fastcgi_cache my_cache;
  8. fastcgi_cache_valid20060m;# 缓存 HTTP 200 响应 60 分钟
  9. fastcgi_pass127.0.0.1:9000;
  10. }
  11. }
  12. }

6. 减少 DNS 解析时间

在 Nginx 中,如果上游服务器地址是域名而不是 IP 地址,Nginx 会在启动时进行一次 DNS 解析。为了避免这个问题,可以使用 resolver 指令,并配置一个合适的 DNS 服务器。

  1. location/{
  2. resolver8.8.8.8;
  3. proxy_pass http://backend_server;
  4. }

7. 开启 TCP_NODELAY

TCP_NODELAY 可以确保数据包立即发送,而不是等待更多数据来填满缓冲区。这对于低延迟的网络应用非常有用。

  1. http{
  2. tcp_nodelayon;
  3. }

8. 优化日志记录

日志记录会产生 I/O 消耗。为了提升性能,可以考虑关闭不必要的日志或使用 buffer 指令将日志写入内存缓冲区。

  1. http{
  2. access_logoff;# 关闭访问日志
  3. # 或
  4. # access_log /var/log/nginx/access.log buffer=32k;
  5. }

9. 限制请求速率

使用 limit_req_zone 和 limit_req 模块可以限制来自单个 IP 地址的请求速率,防止恶意攻击或滥用。

  1. http{
  2. limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  3. server{
  4. location/login/{
  5. limit_req zone=one burst=5;
  6. }
  7. }
  8. }

rate=1r/s 限制每秒一个请求,burst=5 允许短时间内的突发请求。

10. 使用 HTTP/2

HTTP/2 提供了多路复用、服务器推送和头部压缩等特性,可以显著提升网站性能。要启用 HTTP/2,只需在 listen 指令中添加 http2 参数。

server {

listen443 ssl http2;

# ...

}


阅读原文:原文链接


该文章在 2025/9/12 11:39:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved