nginx优化

nginx优化

1 并发量优化
2 优化nginx数据包头过长
3 客户端浏览器缓存数据
4 自定义报错界面
5 查看服务器状态信息
6 开启gzip文件压缩功能,提高数据传输效率
7 开启文件缓存

nginx参数详解:https://www.cnblogs.com/ifindu-san/p/7249028.html

1 并发量优化

报错详情:
Benchmarking localhost (be patient)
socket: Too many open files (24)

1.1 ab web端限制

[root@host2 nginx]# ab -n 300000 -c 30000 http://localhost/
ab: Invalid Concurrency [Range 0..20000]	## 默认最大并发为20000(不知道如何修改)

1.2 nginx参数优化

vim nginx.conf

worker_processes  2; #最大为CPU内核数
events {
	worker_connections  65535;	#并发连接数
	use epoll;
}

1.3 Linux内核优化(参数优化,最大打开文件数默认为1024)

[root@host2 nginx]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15064
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024	# 最大打开文件数
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15064
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@host2 nginx]# ulimit -Hn 200000	# 设置硬连接(临时生效)
[root@host2 nginx]# ulimit -Sn 100000	# 设置软链接(临时生效)
						# 软硬链接只是对普通用户起作用,普通用户可调解数在软硬链接之间。
## 改成永久生效
[root@host2 nginx]#	vim /etc/security/limits.conf
看配置文件的参数模板

添加如下信息

*   hard  nofile 200000     #nofile 打开文件数
*   soft  nofile 100000
# 查看
ulimit -Sn
ulimit -Hn
ulimit -a

2 优化nginx数据包头过长(414报错)

错误详情:
<head><title>414 Request-URI Too Large</title></head>
用户访问头部信息超过默认值(buffer缓存值),请求的url太长
优化
http {
	client_header_buffer_size 1k;	# 默认请求的头部信息缓存值大小
	large_client_header_buffers 4 1m;	# 超过默认值则启用 4 * 1m空间
}

http请求出现413错误码

博客连接:https://blog.csdn.net/qq_38630637/article/details/84652613
413错误码是表示:请求实体太大。
vim /etc/nginx/nginx.conf

http {
    #允许客户端请求的最大单文件字节数
    client_max_body_size 8M;(配置请求体缓存区大小) 
    
    #缓冲区代理缓冲用户端请求的最大字节数,
    client_body_buffer_size 128k;(设置客户端请求体最大值) 
    
    fastcgi_intercept_errors on;
}

3 客户端浏览器缓存数据(buffer缓存)

http {
	location / {}
	location ~* \.(jpg|png|gif|mp3) {
		expires 30d;	#将指定静态数据在浏览器缓存30天;
		}
}

4 自定义报错界面(404界面优化)

5 查看服务器状态信息

编译安装时使用 --with-http_stub_status_module开启状态页面模块
...
location / stauts {
	stub_status on;
}
...
在浏览器中访问 http://ip/status
Active connections: 1 				
server accepts handled requests
	10 			10 		3 
Reading: 0 Writing: 1 Waiting: 0
// 参数详解
Active connections:当前活动的连接数量(并发量)。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量(一般与accepts一致,除非服务器限制了连接数量)。
Requests:客户端发送的请求数量。(一次连接,多次请求)
Reading:当前服务器正在读取客户端请求头的数量。(0代表全读完,10代表还有10个未读)
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。

6 文件压缩

vim ..conf/nginx.conf

http {
	gzip on;					# 开启压缩
	gzip_min_length 1000;		# 小文件不压缩/小于1000k的文件不压缩
	gzip_comp_level 4;			# 压缩比率为4级(Linux系统gzip压缩等级为1-9级)
	gzip_types text/plain test/css application/json ; # 对特定文件压缩,类型参考conf/mime.types 
								# 一般建议压缩 pdf,txt,doc,xls,html文件	
}

7 优化文件缓存

http {
	open_file_cache max=2000 inactive=20s;
	open_file_cache_valid	60s;
	open_file_cache_min_uses 5;
	open_file_cache_errors	off;
	# 设置服务器最大缓存2000个文件句柄,关闭20s内无请求的句柄
	# 文件句柄的有效时间是60s;60s过后自动删除
	# 文件访问次数超过5次才被缓存
	# 缓存报错,off关掉。
}

8、nginx504报错

https://7dapi7.smartapps.baidu.com/pages/article/article?eid=2c8c281d9680760008252a8a&scene=10810008&from=&hostname=baiduboxapp&_swebfr=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值