nginx的优化和防盗链

一、nginx的优化

1、隐藏版本号

使用浏览器访问nginx服务,F12查看网页代码,server服务有nginx的版本号

 编辑 vim /usr/local/nginx/conf/nginx.conf的http模块下添加隐藏版本号

   server_tokens off;

使用浏览器再次访问nginx并查看版本号消失

 2、设置页面的缓存时间

设置页面的缓存时间,主要是针对动态页面,针对图片的缓存时间

使用rz -E 在/usr/local/nginx/html/目录下导入一张图片boy.php或者直接托入图片,F12查看网页代码,查看页面缓存时间

在/usr/local/nginx/conf/nginx.conf的http模块下的 server模块下做一个location

       location ~ \.(gif|jpg|png)$ {
        root html;
        expires 2d;#2d表示2天 
}

查看效果

3、 日志分割

apache是自带日志分割的,按天来进行收集日志

编写一个脚本文件

#!/bin/bash
day=$(date -d "-1 day" +"%Y%m%d")
#先指定好日志,显示前一天的时间
logs_path="/usr/local/nginx/logs/"
#先指定pid文件的位置
pid_path="/usr/local/nginx/run/nginx.pid"
mv /usr/local/nginx/logs/access.log ${logs_path}access-${day}.log
mv /usr/local/nginx/logs/error.log ${logs_path}error-${day}.log
kill -USR1 $(cat ${pid_path})
#超过30天的日志进行清理
find ${logs_path} -mtime +30 -exec rm -rf {} \; 

4、更改进程数以及设置cpu绑定

在/usr/local/nginx/conf/nginx.conf文件下

worker_processes 2
#表示进程有2个,这里和cpu数挂钩,不绑定cpu进程可能会在两cpu之间来回切换使用,浪费资源
worker_cpu_affinity 01 10 100 1000; #这里绑定四个cpu
#绑定cpu避免进程进行切换

5、连接超时

keepalive timeout 65
#请求完成之后的连续保存时间,65秒 
client_header_timeout 80
#客户端发送一个完整的请求头的超时时间,80秒之内没有发送一个完整的请求头,nginx返回码408(request time out)
client_boby_timeout 80
#客户端和服务端建立连接之后。发送请求体的超时时间,客户端在80秒内没有发哦那个任何内容,nginx返回码408

6、 网页压缩

将32行注释取消,开启压缩功能

gzip_min_lenth 1k;
#最小的压缩文件,小于等于1k的文件就不在压缩了

gzip_bufersk  4  64k;

#设施缓冲区4个,每个缓冲区的大小64k

#gzip_comp_level 6;
#压缩比例 1-9,数字越小压缩比例越小,速度越快 数字越大。压缩的比例越高。压缩的比率越高,速度越慢。
#一般设置6速度中等

支持压缩格式:

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;

7、 回收time_wait

time_wait是tcp连接当中的一种状态,不是保存,出现在四次挥手之后,处于等待状态,双发不在发送数据。

time_wait所占用的系统资源很少,数量比较少。完全可以忽略不计,但是太多了就有一定的影响

连接断开看(四次挥手)之后尽快把time_wait状态的连接回收

统计当前系统的连接状态

netstat -n | awk '/^tcp/ {++s[$NF]} END {for (a in s) print a s[a]}'

在系统配置文件

vim /etc/sysctl.conf
-----------------------
net.ipv4.tcp_syncookies=1
#防止tcp的半连接队列溢出,可以达到服务端在收到tcp的syn(同步)的请求能够快速响应

net.ipv4.tcp_tw_reuse=1
#允许复用time_wait状态的连接,新的连接可以直接使用time_wait 状态的端口,可以提高连接的重用率

#老版本的配置
net.ipv4.tcp_tw_recycle=1
#时间戳戳记进行连接复用

net.ipv4.tcp_fin_timeout=30
#控制time_wait状态的持续时间,持续30秒,不是立即把time_wait的连接收回。而是尽可能的把time_wait状态的进行回收,没用的空闲的,进行回收
wq

sysctl -p 
#立即生效

二、防盗链

1、实现防盗链

Web源主机(192.168.10.20)配置:

防盗链指的是禁止域名访问,访问后跳转到盗链提示

vim /etc/local/nginx/conf/nginx.conf
-------------------------------------
#在http模块下增加一个location模块
location ~* \.(jpg|gif)${
#使用正则表达式进行匹配
valid_referers none blocked *.xy102.com xy102.com;
#允许xy102.com的网址访问图片
if ($invalid_referer){
rewrite ^/ http://www.xy102.com/error.png;
#如果不是xy102.com访问。一律跳转到盗链的提示
}
}

 在/etc/local/nginx/html/目录下放两张图片。

配置 源主机主页访问内容

cd /usr/local/nginx/html
将game.jpg、error.png文件传到/usr/local/nginx/html目录下
vim index.html
...... 
<img src="boy.jpg"/>
</body>
</html>

做一个本地映射 

 盗链网站主机(192.168.10.30):

仅需要修改nginx访问主页,转链接到宿主机域名

cd /usr/local/nginx/html
vim index.html
...... 
<img src="http://www.xy102.com/boy.jpg"/>
</body>
</html>

盗链主机本地映射

echo "192.168.10.20 www.xy102.com" >> /etc/hosts 
echo "192.168.233.30 www.xy103.com" >> /etc/hosts 

在web网站主机上进行浏览器验证
http://www.xy102.com

访问盗版网站,提示盗链信息。

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值