Nginx优化

标准情况下,软件默认的参数都是对安装软件的硬件标准来设置的,⽬前我们服务器的硬件资源远远⼤于要求的标准,所以为了让服务器性能更加出众,充分利⽤服务器的硬件资源,我们⼀般需要优化APP的并发数来提升服务器的性能。

1.进程优化
worker_processes   4; # ⼯作进程数量 按CPU的总核⼼调整,一般有几核就几个进程
worker_cpu_affinity    0001 0010 0100 1000; # CPU的亲和⼒,也就是分配cpu。0001 0010 0100 1000 分别代表第零、一、二、三号核心

events {
	worker_connections   1024; # 每个进程最大并发数
}

http {
    ...
}

查看服务器有几个核
cat /proc/cpuinfo |grep “flags” |wc -l

查看Nginx当前链接数
netstat -antpl |grep nginx|grep ESTABLISHED|wc -l

2.长连接

设置长连接可以减少三次握⼿和四次断开的次数

http {
    ...
	# keepalive_timeout   0;   0代表关闭
	# keepalive_timeout   5;   长连接保持时间5秒
	# keepalive_requests 8192;  每个⻓连接接受最⼤请求数8192
3.数据压缩

使用数据压缩可以大大减少传输文件的大小,从而达到减少使用带宽,提高传输效率的的目的。

http {
    ...
	gzip on;     #(启⽤ gzip 压缩功能)
	gzip_proxiedany;  #(nginx 做前端代理时启⽤该选项,表示⽆论后端服务器的headers头返回什么信息,都⽆条件启⽤压缩)
	gzip_min_length 1024;  #(最⼩压缩的⻚⾯,如果⻚⾯过于⼩,可能会越压越⼤,这⾥规定⼤于1K的⻚⾯才启⽤压缩)
	gzip_buffers    4 8k;  #(设置系统获取⼏个单位的缓存⽤于存储gzip的压缩结果数据流  按照原始数据⼤⼩以8K为单位申请4倍内存空间)
	gzip_comp_level3; # (压缩级别,1压缩⽐最⼩处理速度最快,9压缩⽐最⼤但处理最慢,同时也最消耗CPU,⼀般设置为3就可以了)
	gzip_types      text/plain text/cssapplication/x-javascriptapplication/javascriptapplication/xml; #(什么类型的⻚⾯或⽂档启⽤压缩)
}
4.客户端缓存

客户端缓存可以在一定程度上减小服务器压力

http {
	server {
		location ~*  \.(png|gif)$ {
		        expires 1h;  # 客户端缓存png和gif文件持续时间1h
		   }
	}
}
Nginx是一个高性能的Web服务器和反向代理服务器,它具有占用资源少、处理请求快、支持高并发等优点,但是在大流量环境下,需要对Nginx进行优化,以提高性能和稳定性。 以下是一些Nginx优化的建议: 1. 调整worker_processes参数 worker_processes参数是Nginx的工作进程数,建议将其设置为CPU核心数的两倍。 例如,如果你的服务器有8个CPU核心,则可以将worker_processes设置为16。 2. 增加worker_connections参数 worker_connections参数表示每个工作进程可以同时处理的连接数,建议将其设置为1024或更高。 可以通过以下命令查看当前系统的最大连接数: ``` ulimit -n ``` 如果当前值较小,则需要增加该值: ``` ulimit -n 65535 ``` 3. 开启TCP Keepalive TCP Keepalive可以在连接空闲一段时间后,自动发送一个探测包,以保持连接的有效性。 可以通过以下命令开启TCP Keepalive: ``` tcp_nodelay on; tcp_nopush on; keepalive_timeout 60s; ``` 其中,keepalive_timeout表示空闲连接的超时时间。 4. 启用gzip压缩 启用gzip压缩可以减少传输数据量,提高网站的响应速度。 可以通过以下命令开启gzip压缩: ``` gzip on; gzip_min_length 1k; gzip_buffers 16 64k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ``` 其中,gzip_types表示需要压缩的文件类型。 5. 限制请求速率 限制请求速率可以防止恶意攻击和DDoS攻击。 可以通过以下命令限制请求速率: ``` limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ``` 其中,$binary_remote_addr表示客户端IP地址,zone表示限制区域,10m表示限制区域的内存大小,rate表示请求速率。 6. 缓存静态文件 缓存静态文件可以减少文件的读取次数,提高网站的响应速度。 可以通过以下命令缓存静态文件: ``` location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 1d; add_header Cache-Control "public"; } ``` 其中,expires表示文件的过期时间,add_header表示响应头信息。 以上是一些Nginx优化建议,需要根据实际情况进行调整和优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值