Ngnix调整
1、隐藏版本号,防止针对版本攻击
http {
server_tokens off;
2、增加并发连接
2.1 worker_processes :改为CPU核数一致,因为异步IO进程是单线程
2.2 worker_connections 65535
apache 理论并发 3w
nginx 理论并发 5w
2.3 /etc/security/limits.conf:修改配置文件
* soft nofile 100000
* hard nofile 100000
ulimit -h 查看
ulimit -Hn 100000:实时生效,重起丢失
ulimit -Sn 100000:实时生效,重起丢失
2.4 客户端测试也需要提高打开文件的限制
3. 客户端请求头信息过长,服务请求缓存过小
3.1 client_header_buffer_size 1K;
3.2 large_client_header_buffer 4 4K;4个4K.工作;实验 4 1m
4、页面压缩gzip on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/plain application/json;
5、缓存(服务器要求客户缓存天数)
服务端对长时间不变化的资源告知客户端缓存
Location ~* \.(jpg|png)$ {
expires 30d;
}
//=========~* 正则匹配,忽略大小写
6、自定义404错误页面
error_page 401 402 403 404 /404.html
Location = /40x.html {
root html
}
300--重定向 400客户端错误 401 密码错误 403 禁止deny/权限不对
414 请求头太常 500--服务器错 502--集群错误
7、内核参数优化 /etc/sysctl.conf
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_syn_backlog=60000
net.ipv4.tcp_max_tw_buckets = 30000
net.ipv4.tcp_fin_timeout = 30
8、服务器连接性能 -o显示计时器 每隔1秒钟执行依次ss命令,查看所有的http连接 mysql连接
watch -n1 ss -s -o state all '\( dport = :80 or sport = :80 \)'
watch -n1 ss -s -o state all '\( dport = :3306 or sport = :3306 \)'