nginx的优化
1、隐藏版本号
bug多,更新版本速度块,一旦版本号暴露出去,有可能给对方提供攻击的漏洞。
法一隐藏:【在http大模块中修改,不在server中,也不是location】
cd /usr/local/nginx/
ls
cd conf/
ls
vim /nginx.conf/
server_tokens off;
:wq!
nginx -t
systemctl restart nginx
法二隐藏:【修改源码文件,重新编译安装】
在源码包里修改配置文件
修改完之后重新配置,编译安装
隐藏版本号打开
cd /opt/
ls
cd nginx-1.22.0/
ls
cd src/
ls
cd core/
ls
vim nginx.h
(13、14行进行修改,内容随意)
:wq!
cd ..
ls
cd /usr/local/nginx/conf/
ls
vim nginx.conf
server_tokens on;
:wq!
systemctl restart nginx
2、nginx日志分割
nginx没有自带的日志分割功能,靠人工通过脚本实现日志分割
↓
vim nginxlog.sh
↓
↓
↓
↓
↓
↓
↓
↓
3、网页压缩
http_gzip_static_module 可以对文件内容和图片进行压缩的功能,节约宽带,提升用户的访问速度
↓
↓
vim nginx.conf
↓
↓
4、设置nginx的图片缓存时间
可以在日后访问时,不需要经常向后台请求数据,加快访问速度
一般是针对静态页面,动态不设置
↓
↓
5、连接超时
一般设置60-120s
↓
body,不是boby
↓
6、nginx的并发设置
在高并发的场景下,需要nginx启动更多的进程来保证快速响应
CPU 根据CPU的核心数调整工作进程
↓
一般是CPU核数的一半【上限最多8个,大于8个不会对性能有所提升,甚至会降低稳定性】【一般四个】
↓
查看CPU核数
或者
↓
Q:
A:
8个以上性能降低:
面试:把进程绑定到CPU上
A:
↓
面试:time_wait大量出现,该如何优化?
答:改内核文件
↓
↓
ime_wait是tcp连接状态中的一种,不是报错。出现在四次挥手之后
在time_wait状态下,tcp处于连接等待状态,等待有一个持续时间,http1.1的会话保持
1、确保可靠的关闭连接
2、避免连接复用
他在连接正常关闭之,一段时间之后会自动消失,而且占用的资源很少,对服务器性能的影响有限
nginx的内置变量:打印结果
$remote_addr 客户端的IP地址
&remote_port 显示客户端的端口号
$uri 显示请求的URI
$host 显示请求的主机名
$request_method 显示请求的方法
重要的变量配置
peoxy_set_header X-Forward $remote_addr
代理服务器设置这个变量,客户端的真实IP要发送给后端,否则代理服务器的地址会被拉入黑名单
proxy_set_header X-Real-IP 4remote_addr
客户端的真实IP,发送给后端,现在所有的网站都会要求客户端在请求时加上真实IP
防盗链
↓
↓
↓
↓
大部分: