查找版本号
隐藏版本号:
Bug多,更新版本速度比较快 ,所以一旦版本号暴露出去,有可能给对方提供攻击的漏洞。
在http大模块中修改,不在server中,也不是location中
server_tokens off;
第二种方式
修改源码文件,重新编译安装:
源码包里面,修改配置文件
修改完之后要重新配置,编译安装
隐藏版本号打开
cd src/core/
vim nginx.h
配置完成后重新编译安装
vim /usr/local/nginx/conf/nginx.conf
server_tokens off改为server_tokens on即可
systemctl restart nginx
nginx的日志分割:
nginx没有自带的的日志分割功能,靠我们运维人员通过脚本实现日志分割
获取当前日期
测试成功
erontab -e -u root #创建一个定时任务
网页压缩:
nginx
http_gzip_static_module 可以对文件内容和图片进行压缩的功能,节约宽带,提升用户的访问速度
gzip on;
开启压缩功能
gzip_min_length 1k;
如果文件的大小是1k,不再进行压缩处理
gzip_comp_level 6;
压缩级别:压缩比率1-9 1是速度快,压缩比最低,9 压缩的速度最慢,但是压缩比最高,默认是1
gzip_vary on;
前端的缓存也可以支持压缩
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
nginx的图片缓存时间
可以在日后访问时,不需要经常的向后台请求数据,加快访问速度
一般是针对静态页面
在location块下添加
连接超时时间
keepalive_timeout 60-120;
nginx并发设置:
在高并发的场景下,需要nginx启动更多的进程来保证快速响应
cpu
根据cpu的核心数,调整ngimx的工作进程数
work_processes 4;
worker_connections 15000;
60000个
别忘了修改limits.conf,在/etc/security目录下
查看cpu核数(两种方法)
cat /proc/cpuinfo | grep -c processor
cat /proc/cpuinfo | grep processor | wc -l
一般设4个就可以了
绑定cpu(全局配置)
给的是几个上面的进程数就得是几个
查询time_wait:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
time_wait 是tcp连接状态中一种,不是报错!出现在四次挥手之后
在time_wait状态下,tcp处于连接等待状态,等待有一个持续时间http1.1会话保持时间
他在连接正常关闭之后,一段时间之后,自动消失。而且占用的资源很少,对服务器性能的影响有限。
time_wait大量出现,该如何优化
在系统内核配置文件中
vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
#表示开SYN cookies
当出现SYN等待队列溢出时,启用cookies处理syn队列,默认是0 。1开启。
net.ipv4.tcp_tw_reuse = 1
#time_wait状态可以重用,一个连接就要占用一个端口,time_wait把所有的端口全部占满了,新的连接请求也不会拒绝。
net.ipv4.tcp_tw_recycle = 1
#让time_wait尽快回收。
net.ipv4.tcp_fin_timeout = 60 # 所有time_wait 最大的生命周期60秒。
sysctl -p 立即生效
nginx的内置变量:打印结果
\n后面可以追加多个
$remote_addr 客户端的ip地址
$remote_port 显示客户端的端口号
$uri 显示请求的uri
$host 显示请求的主机名
$request_method 显示请求的方法
重要的变量:
proxy_set_header X-Forwarded-for $remote_addr
代理服务器设置这个变量,客户端的真实ip要发送给后端,否则代理服务器地址会被来入黑名单
proxy_set_header X-Real-IP $remote_addr
客户端的真实ip发送给后端,现在所有的网站都会要求客户端请求时加上真实ip
防盗链:
防止其他网站盗用本站图片
systemctl restart nginx
vim index.html
test2:
systemctl restart nginx
vim /etc/hosts