Nginx之隐藏版本号,优化缓存,日志分割
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,nginx之隐藏版本号配置nginx[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包[root@
千家信息网最后更新 2024年11月30日Nginx之隐藏版本号,优化缓存,日志分割
nginx之隐藏版本号
配置nginx
[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包[root@localhost ~]# useradd -M -s /sbin/nologin nginx ##创建程序性用户[root@localhost ~]# mkdir /chen ##创建挂载点[root@localhost ~]# mount.cifs //192.168.100.23/LNMP /chen ##挂载Password for root@//192.168.100.23/LNMP: [root@localhost chen]# tar zxvf nginx-1.12.2.tar.gz -C /opt/ ##解压[root@localhost chen]# cd /opt/[root@localhost opt]# lsnginx-1.12.2 rh[root@localhost opt]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# lsauto CHANGES.ru configure html man srcCHANGES conf contrib LICENSE README./configure \ ##安装nginx组件--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module[root@localhost nginx-1.12.2]# make && make install ##编译[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##做软链接让系统能识别nginx的所有人命令[root@localhost nginx-1.12.2]# nginx -t ##检查语法错误nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
写nginx脚本放在系统启动脚本中方便service管理器管理
[root@localhost nginx-1.12.2]# cd /etc/init.d/ ##到系统启动脚本[root@localhost init.d]# vim nginx ##写一个nginx脚本#!/bin/bash#chkconfig: - 99 20 #注释信息#description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx" #这个变量,指向我的命令文件PIDF="/usr/local/nginx/logs/nginx.pid" #这个变量,指向nginx的进程号case "$1" in start) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 0[root@localhost init.d]# chmod +x nginx ##给Nginx提升权限[root@localhost init.d]# chkconfig --add nginx ##添加nginx[root@localhost init.d]# service nginx start [root@localhost init.d]# netstat -ntap | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17544/nginx: master [root@localhost init.d]# systemctl stop firewalld.service[root@localhost init.d]# setenforce 0
检查现在我们nginx的版本号
[root@localhost ~]# curl -I http://192.168.136.163/HTTP/1.1 200 OKServer: nginx/1.12.2Date: Tue, 05 Nov 2019 07:30:14 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 05 Nov 2019 07:13:26 GMTConnection: keep-aliveETag: "5dc12116-264"Accept-Ranges: bytes
关闭版本号再检查一下
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.confhttp { ##在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.136.163/ ##查看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
伪造版本号
[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.confhttp { include mime.types; default_type application/octet-stream; server_tokens on; ##开启版本号修改Nginx源码包文件[root@localhost init.d]# cd /opt/nginx-1.12.2/src/core/ ##切换到src源码包目录[root@localhost core]# vim nginx.h ##修改文件#define NGINX_VERSION "1.1.2" ##此处版本号伪造成1.1.2重新编译安装[root@localhost core]# cd /opt/nginx-1.12.2/ ##到Nginx下[root@localhost nginx-1.12.2]# ./configure \ ##重新安装组件> --prefix=/usr/local/nginx \> --user=nginx \> --group=nginx \> --with-http_stub_status_module[root@localhost nginx-1.12.0]# make ##重新编译...[root@localhost nginx-1.12.0]# make install ##重新安装...重启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.136.163/ ##查看Nginx信息HTTP/1.1 200 OK Server: nginx/1.1.2 ##此时的版本号就是伪造的版本号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优化之缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
一般针对静态网页设置,对动态网页不设置缓存时间
可在Windows客户端中使用fiddler查看网页缓存时间
我们先准备一张图片在宿主机的共享目录中
把图片放到nginx的站点中
[root@localhost ~]# cd /chen/[root@localhost chen]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.0.tar.gz php-7.1.20.tar.gzfang.png nginx-1.12.2.tar.gz shu.jpgmysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2[root@localhost chen]# cp shu.jpg /usr/local/nginx/html/[root@localhost chen]# cd /usr/local/nginx/html/[root@localhost html]# ls50x.html index.html shu.jpg[root@localhost html]# vim index.html ##进入网页做个图片的路径 15 ##在第15行添加图片
设置缓存时间
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf##在server服务器级别76 location ~\.(gif|jepg|jpg|icp|bmp|png)$ { ##加入能使别这些图片格式 77 root html; ##管理员页面 78 expires 1d; ##缓存时间1天 16 user nginx nginx; ##16行加入nginx用户和组[root@localhost html]# service nginx start
客户机去测试一下访问网站
用抓包工具看一下缓存时间
Nginx之日志切割
随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注日志文件
太大的日志文件对监控是一个大灾难
定期进行日志文件的切割
Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划任务周期性的进行日志切割
编写日志分割脚本文件
[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 ##执行脚本文件
查看日志分割情况
[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
设置周期性计划任务
[root@localhost nginx]# crontab -e ##周期性计划任务0 1 * * * /opt/fenge.sh
以上就是我们全部的内容了,谢谢收看
日志
文件
版本
时间
脚本
缓存
图片
目录
网页
信息
路径
服务
任务
周期
周期性
客户
系统
检查
管理
编译
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全绘画一等奖高质量初中
福建有网络安全员学校吗
软件与服务器连接失败怎么办
机柜服务器安装高度
软件开发方案模版
mysql查看数据库大小
数据发到服务器上怎么处理的数据
mysql 数据库关闭
剑灵更新数据库
辽宁德聚仁合网络技术
asp数据库转换时间格式
重庆铜梁配送生鲜软件开发
服务器不进入系统怎么格式化硬盘
ccf网络安全竞赛
通用软件开发面试
根据网络安全发 网信部门
网络安全实施办法日期
金山区工程软件开发服务价格
index怎么上传到服务器
GIS软件开发类期刊
网络安全图片素材高清
创建数据库最少几行代码
2021年全员网络安全答题
网络安全A类学科大学
服务器的设置和管理
软通动力西安数据库运维
成都市软件开发招聘信息
国家网络安全应急办最终设在
远程服务器登录需要密码
网络技术购销合同