论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
主机系统
›
linux
›
Nginx性能优化全方案:打造一个高效服务器 ...
Nginx性能优化全方案:打造一个高效服务器
大连全瓷种植牙齿制作中心
论坛元老
|
2025-1-25 21:37:32
|
显示全部楼层
|
阅读模式
楼主
主题
1483
|
帖子
1483
|
积分
4464
提到前面:一个热衷技能,反对八股的资深研发,不卖课不引流,专注分享高质量讲授博客。
假如觉得文章还不错的话,可以点赞+收藏+关注 支持一下,持续分享高质量技能博客。
假如有什么需要改进的地方还请大佬指出❌
欢迎学习交流,直接私我
弁言
Nginx是一款高性能的Web服务器,广泛应用于互联网领域。然而在高并发、大流量的情况下,Nginx的性能大概会受到一定的影响。因此,对Nginx进行性能优化是非常必要的。本文针对nginx几个常用设置调节来做为切入点。瞧一瞧,看一看,面试时还能吊打一下面试官。
本文将从多个底层先容如何基于Nginx进行性能优化。不管新手老手直接照搬即可。
一、调解工作历程数和线程数
Nginx采用
异步非壅闭
的方式处置惩罚请求,这种方式可以充分利用CPU资源,进步并发处置惩罚能力。但是,过多的工作历程和线程会导致系统资源浪费,降低性能。因此,需要根据实际情况调解Nginx的工作历程数和线程数。
unsetunset调解工作历程数unsetunset
Nginx的工作历程数是指Nginx启动后生成的子历程数目。可以通过修改Nginx设置文件中的worker_processes参数来调解工作历程数。
例如:
worker_processes 4;
复制代码
表示将Nginx的工作历程数设置为4。
unsetunset调解线程数unsetunset
每个工作历程都有一个默认的线程数,即Nginx的事件处置惩罚模子中包含的线程数。可以通过修改Nginx设置文件中的worker_connections参数来调解线程数。
例如:
worker_connections 1024;
复制代码
表示将每个工作历程的线程数设置为1024。
需要注意的是,线程数并不是越大越好,因为线程之间的竞争大概会导致性能降落。因此,需要根据实际情况进行调解。需要联合实际的业务流量场景和服务器硬件负载率来进行优化。
二、启用Gzip压缩
Gzip压缩是一种常用的网页压缩技能,可以减少传输的数据量,进步页面加载速度。Nginx支持Gzip压缩功能,可以通过设置Nginx来实现。
unsetunset安装Gzip模块unsetunset
首先需要在编译Nginx时安装Gzip模块。在Linux系统中,可以使用以下命令安装:
./configure --with-http_gzip_static_module --with-http_gzip_module
make && make install
复制代码
unsetunset设置Gzip压缩unsetunset
在Nginx设置文件中添加以下内容:
http {
...
gzip on; # 开启Gzip压缩功能
gzip_min_length 1k; # 设置最小压缩文件大小为1KB
gzip_buffers 4 16k; # 设置压缩缓冲区个数和大小
gzip_http_version 1.1; # 设置支持的HTTP协议版本为1.1
gzip_comp_level 2; # 设置压缩级别为2(速度与压缩率的平衡)
gzip_types text/plain application/x-javascript text/css application/xml; # 设置需要压缩的文件类型
...
}
复制代码
三、设置缓存计谋
缓存是进步网站性能的重要手段之一。Nginx提供了多种缓存计谋,可以根据实际需求进行设置。以下是一些常见的缓存计谋:
unsetunset设置欣赏器缓存时间unsetunset
通过设置HTTP相应头中的Expires和Cache-Control字段,可以控制欣赏器缓存的时间。
例如:
location ~* \.(jpg|jpeg|gif|png|css|js)$ {
add_header Cache-Control "public, max-age=31536000"; # 设置静态资源的缓存时间为1年(单位:秒)
}
复制代码
unsetunset设置代理服务器缓存时间unsetunset
假如Nginx作为反向代理服务器使用,可以通过设置proxy_cache_valid和proxy_cache_valid指令来控制代理服务器的缓存时间。
例如:
location / {
proxy_pass http://backend; # 将请求转发到后端服务器
proxy_cache mycache; # 启用缓存,命名为mycache
proxy_cache_valid 200 302 60m; # 设置缓存有效时间为60分钟(单位:秒)
proxy_cache_valid 404 1m; # 设置缓存有效时间为1分钟(单位:秒)
}
复制代码
四、优化文件访问方式
在处置惩罚静态文件时,Nginx默认会将文件读取到内存中进行处置惩罚。这种方式在大文件或高并发情况下会导致内存斲丧过大,影响性能。因此,可以采用优化文件访问方式来进步性能。以下是一些优化方法:
unsetunset使用sendfile()函数发送文件数据unsetunset
sendfile()函数可以直接将文件从磁盘读取并发送到网络,避免了数据在用户空间和内核空间之间的拷贝,进步了性能。可以通过在Nginx设置文件中添加以下内容来启用sendfile()函数:
http {
...
sendfile on; # 开启sendfile()函数支持功能(需要操作系统支持)
...
}
复制代码
unsetunset启用sendfile_max_chunk和tcp_nopush参数unsetunset
通过设置sendfile_max_chunk和tcp_nopush参数,可以控制Nginx在发送文件时的最大分片巨细和TCP_CORK选项。
例如:
http {
...
sendfile_max_chunk 1m; # 设置最大分片大小为1MB
tcp_nopush on; # 开启TCP_CORK选项
...
}
复制代码
五、优化日志设置
日志是排盘问题的重要手段,但是过多的日志会导致磁盘空间不敷,影响系统性能。因此,需要对Nginx的日志进行优化。以下是一些优化方法:
unsetunset调解日志级别unsetunset
Nginx支持多种日志级别,如debug、info、notice、warn、error等。可以通过修改Nginx设置文件中的log_level参数来调解日志级别。
例如:
http {
...
log_level info; # 将日志级别设置为info
...
}
复制代码
unsetunset设置日志切割和压缩unsetunset
为了减少日志占用的磁盘空间,可以设置日志切割和压缩功能。例如:
http {
...
access_log /var/log/nginx/access.log combined buffer=32k flush=1m; # 配置访问日志切割和压缩功能
error_log /var/log/nginx/error.log info; # 配置错误日志,并设置日志级别为info
...
}
复制代码
六、其他优化发起
除了上述优化方法外,还有一些其他的优化发起:
unsetunset使用CDN加速静态资源访问unsetunset
CDN(Content Delivery Network)是一种内容分发网络
可以将静态资源缓存到离用户更近的节点上,进步访问速度。
可以使用阿里云、腾讯云等云服务商提供的CDN服务。
unsetunset使用HTTP/2协议进步传输服从unsetunset
HTTP/2协议是一种新的HTTP协议,支持多路复用、头部压缩等功能,可以进步传输服从。需要在Nginx和客户端同时支持HTTP/2协议才华生效。可以通过修改Nginx设置文件中的listen指令来启用HTTP/2协议。例如:
server {
listen 443 ssl http2; # 启用HTTPS并启用HTTP/2协议支持功能(需要操作系统和SSL库支持)
...
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
大连全瓷种植牙齿制作中心
论坛元老
这个人很懒什么都没写!
楼主热帖
初识C语言
记一次 .NET 某汽贸店 CPU 爆高分析 ...
浅入浅出 1.7和1.8的 HashMap
Net core中使用System.Drawing对上传的 ...
业务安全发展的三个阶段
小米14 Ultra 澎湃OS 1.0.1.0 ADB优化 ...
前后端分离项目(八):后端报错Field ...
java学习第二天
计算数学算式的值
Docker三种自定义网络(bridge、macvla ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
云原生
鸿蒙
快速回复
返回顶部
返回列表