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