nginx深度优化——隐藏版本号、日志分割、缓存处理
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,内容要点:隐藏版本号网页缓存日志分割隐藏版本号两种配置方法:修改配置文件法修改源码法一、修改配置文件法:[root@localhost init.d]# curl -I http://192.168.
千家信息网最后更新 2025年02月01日nginx深度优化——隐藏版本号、日志分割、缓存处理
内容要点:
隐藏版本号
网页缓存
日志分割
隐藏版本号
两种配置方法:
修改配置文件法
修改源码法
一、修改配置文件法:
[root@localhost init.d]# curl -I http://192.168.13.140/ ##查看Nginx信息HTTP/1.1 200 OKServer: nginx/1.12.2 ##显示版本号Date: Tue, 12 Nov 2019 14:23:24 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 12 Nov 2019 13:46:35 GMTConnection: keep-aliveETag: "5dcab7bb-264"Accept-Ranges: bytes[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf ##修改配置文件http { ##在http下添加 include mime.types; default_type application/octet-stream; server_tokens off; ##关闭版本号[root@localhost init.d]# service nginx stop ##关闭服务[root@localhost init.d]# service nginx start ##开启服务[root@localhost init.d]# curl -I http://192.168.13.140/ ##查看Nginx信息HTTP/1.1 200 OK Server: nginx ##版本号被隐藏Date: Tue, 12 Nov 2019 14:22:00 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 12 Nov 2019 13:46:35 GMTConnection: keep-aliveETag: "5dcab7bb-264"Accept-Ranges: bytes
使用curl -I 命令检测,可以看到版本号
再次使用curl -I 进行查询
二、伪造版本号(需重新编译安装,也可在编译安装之前操作)
[root@localhost ~]# cd /opt/nginx-1.12.1/src/core[root@localhost core]# vim nginx.h 进入配置文件中修改你想展示的版本号[root@localhost core]# cd ../../[root@localhost nginx-1.12.2]# ./configure \ 然后进行重新编译> --prefix=/usr/local/nginx \> --user=nginx \> --group=nginx \> --with-http_stub_status_module
重启nginx服务,查看版本信息
[root@localhost nginx-1.12.2]# service nginx stop ##关闭[root@localhost nginx-1.12.2]# service nginx start ##开启[root@localhost nginx-1.12.2]# curl -I http://192.168.13.140/ ##查看Nginx信息HTTP/1.1 200 OK Server: nginx/1.1.1 ##此时的版本号就是伪造的版本号Date: Tue, 12 Nov 2019 14:34:02 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 12 Nov 2019 13:46:35 GMTConnection: keep-aliveETag: "5dcab7bb-264"Accept-Ranges: bytes
网页缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
一般针对静态网页设置 ,对动态网页不设置缓存时间
可在Windows客户端中使用fiddler查看网页缓存时间
配置方法:
可修改配置文件,在http段,或者server段,或者location段加入对特定内容的过期参数
1、将测试图片复制至nginx网页站点目录下
[root@localhost mnt]# cp test.jpg /usr/local/nginx/html/ ##复制图片到站点中[root@localhost mnt]# cd /usr/local/nginx/html/ ##切换到站点下[root@localhost html]# lstest.jpg 50x.html index.ht
2、修改网页信息,将测试图片添加到index.html文件中
[root@localhost html]# vim index.html ##修改网页信息Welcome to nginx!
##加入图片到网页中
3、修改配置文件信息,添加缓存时间
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf ##修改配置文件events { worker_connections 1024;} user nginx nginx; ##修改Nginx用户和组 # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~\.(gif|jepg|jpg|ico|bmp|png)$ { ##支持图片格式 root html; ##站点 expires 1d; ##缓存一天 }[root@localhost html]# service nginx stop ##关闭开启服务[root@localhost html]# service nginx start
4、访问网页,使用fiddler查看缓存
nginx的日志分割
随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注日志文件
太大的日志文件对监控是一个大灾难定期进行日志文件的切割
Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划任务周期性的进行日志切割
1、编写日志分割脚本文件
[root@localhost ~]# vim fenge.sh ##编写脚本文件#!/bin/bash#Filename:fenge.shd=$(date -d "-1 day" "+%Y%m%d") ##显示一天前的时间logs_path="/var/log/nginx" ##分割日志的保存路径pid_path="/usr/local/nginx/logs/nginx.pid" ##pid的路径[ -d $logs_path ] || mkdir -p $logs_path ##没有目录则创建目录mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d##原有日志文件生成到新路径下kill -USR1 $(cat $pid_path) ##结束重新生成新的pid文件find $logs_path -mtime +30 | xargs rm -rf ##删除30天前的日志文件[root@localhost ~]# chmod +x fenge.sh ##给执行权限[root@localhost ~]# ./fenge.sh ##执行脚本文件
2、查看日志分割情况
[root@localhost ~]# cd /var/log/nginx/ ##切换到Nginx的日志目录下[root@localhost nginx]# lstest.com-access.log-20191112[root@localhost nginx]# date -s 2019-11-14 ##修改日期为明天的时间2019年 11月 14日 星期四 00:00:00 CST[root@localhost nginx]# cd ~[root@localhost ~]# ./fenge.sh ##重新执行脚本[root@localhost ~]# cd /var/log/nginx/[root@localhost nginx]# ls ##查看日志分割日志文件test.com-access.log-20191112 test.com-access.log-20191113
3、设置周期性计划任务,进行定期分割
[root@localhost nginx]# crontab -e ##周期性计划任务0 1 * * * /opt/fenge.sh
更多nginx优化状态统计、访问控制等,进我主页查看
文件
日志
版本
网页
配置
缓存
时间
信息
图片
脚本
目录
服务
任务
内容
周期
周期性
路径
编译
功能
可在
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浩瀚网络安全科技馆
学校网络技术
车用软件开发管理
pm数据库
机架服务器能改用塔式机箱
网络安全产品哪个牌子好
免费的网络安全知识竞赛题库
网络安全宣传周征集
山景科创网络技术
软件开发系统甲方责任与义务
华能网络安全三年计划
软件开发哪一个的前景好
上海德搜网络技术有限公司
我国网络安全信息化
服务器管理界面密码忘了
网络安全专业 开设院校
地方人民政府网络安全
智能云服务器登录
浙江交友软件开发哪家便宜
作业网络技术的应用实例
为了吾王选哪个服务器
浙江信息软件开发商家
数据库管理工程师的出路
云平台及服务器管理
服务器安全软件破解版下载
甘肃数据网络技术服务经验丰富
数据库层级关系图
小学一年级班会网络安全方案
初三生网络安全黑板报图片
作业网络技术的应用实例