Nginx服务器高性能优化--轻松实现10万并发访问量
off999 2025-01-04 22:22 28 浏览 0 评论
前面讲了如何配置Nginx虚拟主机,如何配置服务日志等很多基础的内容,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 。
今天要说的是Nginx服务器高性能优化的配置,如何使Nginx轻松实现10万并发访问量。
通常来说,一个正常的 Nginx Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,如果Nginx服务器经过优化的话,则可以稳定地达到 904,000 次/秒 的处理性能,大大提高Nginx的并发访问量。
这里需要特别说明的是:
1、本文中所有列出来的配置都是在我的测试环境验证的,你需要根据你服务器的情况进行配置。
2、Nginx的优化需要进行进行压力测试,这里压力测试用的是Apache ab测试工具,不熟悉的可以看看我之前的文章:《如何使用apache ab性能测试工具进行压力测试》
优化思路
分析:nginx要成功响应请求,会有如下两个限制:
1、nginx接受的tcp连接多,能否建立起来?
2、nginx响应过程,要打开许多文件,能否打开?
所以,只要我们针对上面两个限制进行优化,就能大幅提升Nginx的效率。
优化步骤
一、步骤:
1. 找到Nginx服务器瓶颈。
2. 优化配置。
3. 重新压力测试
注意:在配置修改之后务必要进行压力测试,这样可以观测到具体是哪个配置修订的优化效果最明显。通过这种有效测试方法可以为你节省大量时间。
二、找出Nginx的瓶颈
1. 打开Apache ab压力测试工具,输入如下命令:ab -n 200000 -c 5000 http://localhost:8080/index.html。
2. 查看Nginx 状态信息
在浏览器中输入nginx的地址:http://127.0.0.1/status,查看nginx的状态信息。
注意查看connections,waiting等参数信息。从而确定如何优化相关参数。
Nginx 状态信息打开的方法,这里就不细说了,不清楚的可以看我之前的文章,《Nginx总结(八)启用Nginx Status及状态参数详解》
优化配置
根据上面的方法总结起来,一般来说nginx 配置文件中对优化比较有作用的为以下几项:
Nginx优化配置项:
1)优化 workprocess,cpu
worker_processes 8; // 根据CPU核数配置
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;2)事件处理模型优化
nginx的连接处理机制在于不同的操作系统会采用不同的I/O模型,Linux下,nginx使用epoll的I/O多路复用模型,在freebsd使用kqueue的IO多路复用模型,在solaris使用/dev/pool方式的IO多路复用模型,在windows使用的icop等等。 要根据系统类型不同选择不同的事务处理模型,我们使用的是Centos,因此将nginx的事件处理模型调整为epoll模型。
events {
worker_connections 10240; //
use epoll;
}说明:在不指定事件处理模型时,nginx默认会自动的选择最佳的事件处理模型服务。
3)设置work_connections 连接数
worker_connections 10240; 4)每个进程的最大文件打开数
worker_rlimit_nofile 65535; # 一般等于ulimit -n系统值5)keepalive timeout会话保持时间
keepalive_timeout 60;6)GZIP压缩性能优化
gzip on; #表示开启压缩功能
gzip_min_length 1k; #表示允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩,建议设置成大于1K。如果小于1K可能会越压越大
gzip_buffers 4 32k; #压缩缓存区大小
gzip_http_version 1.1; #压缩版本
gzip_comp_level 6; #压缩比率, 一般选择4-6,为了性能gzip_types text/css text/xml application/javascript; #指定压缩的类型 gzip_vary on; #vary header支持7)proxy超时设置
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k8)高效传输模式
sendfile on; # 开启高效文件传输模式。
tcp_nopush on; #需要在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送。Linux系统内核层面:
Nginx要达到最好的性能,出了要优化Nginx服务本身之外,还需要在nginx的服务器上的内核参数。
这些参数追加到/etc/sysctl.conf,然后执行sysctl -p 生效。
1)调节系统同时发起的tcp连接数
net.core.somaxconn = 2621442)允许等待中的监听
net.core.somaxconn = 4096 3) tcp连接重用
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1 4)不抵御洪水攻击
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144 #该参数用于设定系统中最多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上,主要目的为防止Ddos攻击5)最大文件打开数
在命令行中输入如下命令,即可设置Linux最大文件打开数。
ulimit -n 30000最后
以上,就把Nginx服务器高性能优化的配置介绍完了,大家可以根据我提供的方法,每个参数挨个设置一遍,看看相关的效果。这些都是一点点试出来的,这样才能更好的理解各个参数的意义。
推荐阅读
- 上一篇:常见nginx配置文件的主上下文指令有哪些?
- 下一篇:Nginx正向代理配置
相关推荐
- 打字最好的输入法(打字输入法哪个最快)
-
搜狗拼音输入法:会拼音就会,熟了也能打很快搜狗五笔输入法:这个我一直用,因为五笔用得不熟练,这个可以五笔拼音混输(优先选五笔的字),五笔输入法需要一定时间学习,学好了比拼音要快,而且相当准确,不像拼...
-
- 移动硬盘插电脑不显示(移动硬盘插电脑不显示盘符)
-
移动硬盘插上电脑不显示:1,进入设备和打印机,找到自己的移动硬盘,删除后再插入。2,打开设备管理器—通用串行总线控制器,找到USB大容量存储设备后右键卸载,接着在拔插一次移动硬盘。3,插入移动硬盘——打开设备管理器——磁盘管理,这个时候不出...
-
2025-12-14 13:51 off999
- 下载工具app(推特视频下载工具app)
-
答,kugo游戏下载器下载有几种方法:第一种:一般下载游戏,都是去官网上下载,因为这里下载不会出现有附带的垃圾广告链接一并下载安装到你的电脑上了。第二种:就是直接在浏览器上搜索你需要下载的游戏名称,然...
- 电脑蓝屏系统还原(电脑蓝屏系统还原怎么办)
-
1、制作U盘启动盘,将系统iso镜像文件复制到U盘启动盘的GHO目录下;2、在电脑上插入U盘,重启后不停按F12、F11、Esc等快捷键打开启动菜单,选择U盘选项,点击回车键;3、启动pe系统,需备份...
- kmstools激活工具怎么用(kms 激活工具)
-
KMSTools2019激活工具如何使用1.双击打开KMSTools,主界面列出多种工具,前面三个都是KMS激活工具,点击第一个;2.点击Activation,表示激活,Information可以查看...
- 手机设置tplink路由器设置教程
-
要使用手机设置TP-Link路由器,您需要按照以下步骤操作:1.首先,请确保您的手机已经连接到TP-Link路由器的Wi-Fi网络上。2.打开手机上的浏览器(如谷歌Chrome、苹果Safari等...
- 番茄花园ghost系统(番茄花园u盘重装系统win7)
-
首先,将GhostXPSP3镜像文件解压缩到一个新的文件夹中。然后,使用Ghost软件将镜像文件写入U盘或刻录成光盘。接下来,将电脑设置为从U盘或光盘启动。在Ghost界面中,选择“一键还原”或“...
- 爱奇艺免费版下载安装(爱奇艺免费版下载安装手机)
-
这个是不能确定的想观看爱奇艺的所有内容的视频呢,你必须开通一个会员,比如说开通一星期的或者一个月的,或者一年的,这样的话里面的VIP影视你也可以观看,免费的也可以但是如果你不开通会员的话,只能观看爱奇...
- microsoft office powerpoint下载
-
如果你想下载一个ppt软件,那么你需要下载(破解版)的MicrosoftOffice套件,随便2003,2007,2010那个版本的套件都行。套件安装过程中可以选择安装MicrosoftOfficeP...
- windows11 官方下载(windows 11正式版下载)
-
WIN11还没有正式发布,所以还没有下载官网。方法/步骤分步:1打开软件选择商店,点击搜索栏。2搜索栏内输入游戏名称,点击搜索。3搜索结果下点击进入游戏详情界面。4点击立即下载。5选择并设置下载路径和...
- 水星路由器登陆密码(水星无线路由器登陆密码)
-
一般水星无线路由器的初始用户名和密码都是admin如果无线路由器的密码修改过,忘记的话,可用大头针轻轻地戳一下无线路由器上的Reset键恢复出厂设置,然后按照路由器后面的用户名及密码进入设置。水星路...
- win7的安装步骤(我告诉你win7怎么安装)
-
安装方法:1、先下载好win7官方原版iso镜像,放在c盘以外的磁盘。2、找到下载好的iso镜像,直接双击打开,win10自带有ISO文件读取的软件,不需下载其他解压软件。3、最好将压缩包解压出来,放...
-
- 联想笔记本wifi开关在哪里(联想笔记本wi-fi开关)
-
方法/步骤1、打开电脑,进入桌面,按住键盘上的windows键(空格键左边alt旁边的图标)+X。2、进入windows移动中心,点击无线网络下的“打开无线”即可。3、也可以,右击任务栏右下角的“无线”图标,点击“打开网络共享中心”。4、进...
-
2025-12-14 07:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
