nginx连接数和性能优化

news/2024/7/7 21:45:07 标签: nginx, 性能优化, 运维

目录

一:介绍

二:优化配置

三:其他优化策略


一:介绍

Nginx是一个高性能的HTTP和反向代理服务器,具有许多用于优化连接数和性能的配置选项。以下是一些关键的配置和优化建议:

1:worker_processes:根据服务器的硬件资源来调整。通常情况下,对于多核处理器,你可以设置较高的值。


2:worker_connections:每个worker进程允许的最大连接数。默认值是1024,但可以根据服务器的性能进行调整。如果服务器有大量的并发连接需求,可以增加这个值。


3:keepalive_timeout:长连接的超时时间。增加这个值可以减少服务器的连接数,但可能会增加客户端和服务器的延迟。


4:client_header_buffer_size:用于接收客户端请求头部的缓冲区大小。根据实际需求和系统分页大小来调整。


5:open_file_cache:用于指定打开文件缓存的大小和缓存失效时间。适当的缓存可以减少文件I/O操作,从而提高性能。


6:proxy_buffers和proxy_buffer_size:当Nginx用作反向代理时,这些参数用于指定存储从上游服务器接收到的响应的缓冲区大小。


7:tcp_nopush和tcp_nodelay:这两个指令用于控制TCP的Nagle算法,以优化网络性能。
worker_priority:可以调整工作进程的优先级,但通常不需要这样做,除非你确定需要更精细的控制。

二:优化配置

1:worker_processes

worker_processes auto; # 根据系统CPU核心数自动调整 # 每个worker进程使用的CPU核心数 worker_cpu_affinity auto; # 根据系统CPU核心数自动绑定 # 每个worker进程的最大连接数 

2:worker_connections

# 每个worker进程的最大连接数  
worker_connections 1024; # 根据实际需求进行调整  

3:keepalive_timeout

# 长连接超时时间  
keepalive_timeout 65; # 根据实际需求进行调整  
  
# 复用长连接的最大空闲时间  
keepalive_requests 100; # 根据实际需求进行调整  

4:client_header_buffer_size

# 客户端请求头部的缓冲区大小  
client_header_buffer_size 8k; # 根据实际需求进行调整  

5:open_file_cache

# 打开文件缓存的大小

open_file_cache max=10000 inactive=60s;

6:proxy_buffers和proxy_buffer_size

# 代理请求的缓冲区大小  
proxy_buffers 4 16k; 
proxy_buffer_size 32k; 

7:tcp_nopush和tcp_nodelay

# TCP连接参数  
tcp_nopush on; 
tcp_nodelay on; 

三:其他优化策略

开启 Nginx 的事件模型,如使用 epoll 或 kqueue,以提高并发连接处理能力。
使用 Nginx 的负载均衡功能,将请求分发到多个后端服务器,以平衡负载和提高性能。
开启 Nginx 的响应内容压缩功能,减小传输数据大小,提高传输效率。


http://www.niftyadmin.cn/n/5306525.html

相关文章

记一次http换成https的过程

记一次http换成https的过程 http默认端口是80,https默认端口是443,此文章主要记录一次网站配置https的过程。 1. 下载申请下载ssl证书 SSL证书是由证书颁发机构审核验证后颁发的,这种颁发机构也叫CA机构,是一个受信任的数字证书…

HarmonyOS应用开发学习笔记 包名、icon图标,应用名修改 UIAbility组件介绍、UIAbility启动模式、UIAbility组件基本用法

目前HarmonyOS应用主推的是Stage模型开发 一、Stage模型基本概念 项目描述UIAbility组件UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。例如,图库类应用可以在UIAbility组件中展示图片瀑布流,在用户选择某个图片后&#xf…

MFC CRuntimeClass 学习

新建一个控制台工程,按以下步骤; 定义对象Person,继承CObject,在头文件中添加宏:DECLARE_DYNCREATE(Person) 在源文件中添加宏:IMPLEMENT_DYNCREATE(Person, CObject) main.cpp中, 使用宏:CRuntimeClass* pRuntimeClass = RUNTIME_CLASS(Person);运行时类信息 使用运行…

查看进程对应的路径查看端口号对应的进程ubuntu 安装ssh共享WiFi设置MyBatis 使用map类型作为参数,复杂查询(导出数据)

Linux 查询当前进程所在的路径 top 命令查询相应的进程号pid ps -ef |grep 进程名 lsof -I:端口号 netstat -anp|grep 端口号 cd /proc/进程id cwd 进程运行目录 exe 执行程序的绝对路径 cmdline 程序运行时输入的命令行命令 environ 记录了进程运行时的环境变量 fd 目录下是进…

QT_01 安装、创建项目

QT - 安装、创建项目 1. 概述 1.1 什么是QT Qt 是一个跨平台的 C图形用户界面应用程序框架。 它为应用程序开发者提供建立艺术级图形界面所需的所有功能。 它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 1.2 发展史 1991 年 Qt 最早由奇…

【tensorflowflutter】自己写个机器学习模型用在项目上?

背景 拍摄APP项目上线有一阵了,每天的拍摄数据呈现波动上升状态、业务方需要对数据进行加工,如果能有对未来的数据量的预测就好了 。 目标 在端侧展示拍摄数据可视化趋势图等、并能推断数据(选择预测日期) 简单实现个demo gif背…

【Vue3+React18+TS4】1-1 : 课程介绍与学习指南

本书目录:点击进入 一、为什么做这样一门课程? 二、本门课的亮点有哪些? 2.1、轻松驾驭 2.2、体系系统 2.3、高效快捷 2.4、融合贯通 三、课程内容包括哪些? 四、项目实战 《在线考勤系统》 五、课适合哪些同学? 一、为什么做这样一门课程? 近十年内前端…

【sql】MyBatis Plus中,sql报错LIKE “%?%“:

文章目录 一、报错详情:二、解决:三、扩展: 一、报错详情: 二、解决: 将LIKE “%”#{xxx}"%"改为LIKE CONCAT(‘%’, #{xxx}, ‘%’) 三、扩展: MyBatis Plus之like模糊查询中包含有特殊字符…