隐藏Nginx版本号,避免安全漏洞泄露
Nginx隐藏版本号方法
关闭版本号,修改nginx的配置文件
[root@promote conf]# vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; ##添加关闭版本号
[root@promote conf]# service nginx restart ##重启服务
●修改nginx.h文件
[root@promote /]# vim /opt/nginx-1.12.2/src/core/nginx.h
步骤不变,照常编译安装nginx,然后用命令去查看,发现版本号发生改变
●Nginx运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制
●Nginx默认使用 nobody用户账号与组账号,一般也要进行修改
●修改的方法
●新建用户账号,如nginx
●修改主配置文件user选项,指定用户账号与组账号
●重启nginx服务,使配置生效
●使用ps aux命令查看nginx的进程信息,验证运行用户账号改变结果
直接修改nginx的配置文件,修改第一行的内容,wq保存
启动nginx的服务,用ps aux | grep nginx的查看进程状况
[root@promote conf]# service nginx start
●当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
●一般针对静态网页设置,对动态网页不设置缓存时间
●设置方法:
修改配置文件,在http段,或者server段,或者location段加入对特定内容的过期参数
1.修改nginx的配置文件,设置缓存时间最大为1天
[root@promote conf]# vim nginx.conf ##修改配置文件
location ~\.(gif|jpg|jpeg|png|ico)$ {
root html;
expires 1d;
}
2.将图片文件放到html目录下
[root@promote conf]# cd …/html/
3.编辑index.html文件
4.编辑完成后重启服务,回到win10系统中输入IP地址用抓包软件查看头部信息
●随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注Nginx日志文件
●太大的日志文件对监控是一个大灾难
●Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割
●通过Linux的计划任务周期性地进行日志分割
date -d ##设置时间格式 -1 设置是前一天的日志信息
1.opt目录下创建一个分割日志脚本
[root@promote html]# cd /opt/
[root@promote opt]# vim fenge.sh
#!/bin/bash
#Filename:fenge.sh
##设置日期名称
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
##自动创建日志目录
[ -d $logs_path ] || mkdir -p $logs_path
##分割日志
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
##生成新日志
kill -HUP $(cat $pid_path)
##删除30天前的日志
find $logs_path -mtime +30 | xargs rm -rf
[root@promote opt]# chmod +x fenge.sh ##添加执行权限
●为避免同一客户端长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间
●超时参数
Keepalive_timeout
Client_header_timeout
Client_body_timeout
●在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处用户的请求,避免造成阻塞
●更改进程数的配置方法
●修改配置文件worker_processes参数
●增加进程数,可减少了系统的开销,提升了服务速度
●使用ps aux查看运行进程数的变化情况
1.查看核心数支持多少线程
[root@promote opt]# cat /proc/cpuinfo | grep -c "physical"
2.修改nginx的配置文件,将进程数量改为4个
2.重启服务,用ps aux命令查看
●Nginx的ngx_htto_gzip_ module压缩模块提供对文件内容压缩的功能
●允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装
●可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
1.修改配置文件,开启网页压缩功能
gzip on; ##开启压缩功能
gzip_min_length 1k; ##压缩预知
gzip_buffers 4 16k; ##buffer大小为4个16k缓冲区大小
gzip_http_version 1.1; ##压缩版本
gzip_comp_level 6; ##压缩比率,最小为1,处理速度快,传输速度 慢,9最大压缩比,处理速度慢,传输速度块
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg
image/png image/gif application/xml text/javascript application/x-httpd-php app
lication/javascript application/json; ##支持的类型
gzip_disable "MSIE [1-6]\."; ##配置禁用gzip条件,支持正则,表示ie6以下不启用
gzipgzip_vary on; ##选择支持vary header 可以让前端的缓存服务器缓存经过gzip压缩页面
2.回到windows清除缓存页面,再次访问并用抓包软件查看,显示支持gzip
防盗链概述
1.做服务器的虚拟机安装DNS服务
[root@localhost ~]# yum -y install bind ##安装bind工具包
[root@localhost ~]# vim /etc/named.conf ##修改主配置文件内容
[root@localhost ~]# vim /etc/named.rfc1912.zones ##修改区域配置文件
[root@localhost named]# cd /var/named/ ##修改区域数据配置文件
启动DNS服务
2.这时打开另外一台虚拟机做盗链主机
[root@localhost ~]# yum -y install httpd ##安装apache服务
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf ##修改配置文件
[root@localhost ~]# cd /var/www/html/ ##修改首页内容
[root@localhost html]# echo "nameserver 192.168.148.135" > /etc/resolv.conf ##将DNS地址指向服务器地址
3.在win系统中输入地址查看
4.回到服务器虚拟机,配置防盗链
如果开头为任意字符,那就执行本地访问,如果不是本地访问,就执行重写功能导入error图片
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
写入脚本
location ~*\.(jpg|gif|swf)$ {
valid_referers none blocked *.test.com test.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.test.com/error.png;
}
}
[root@localhost html]# service nginx restart ##重启服务
vim php-fpm.conf
pid = run/php-fpm.pid
pm = dynamicpm.max_children=20 ##static模式下空闲进程数上限,大于下面的值
pm.start_servers = 5 ##动态方式下默认开启的进程数,在最小和最大之间
pm.min_spare_servers = 2 ##动态方式下最少空闲进程数pm.max_spare_servers = 8 ##动态方式下最大空闲进程数