哥哥教你~Nginx优化与防盗链

Nginx优化与防盗链

Nginx服务优化

隐藏版本号:

方法一:修改配置文件方式
vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default type application/octet-stream;
server_tokens off;
#添加,关闭版本号
systemctl restart nginx
curl-I http:/192.168.10.19

方法二

[root@localhost conf]# vim /opt/nginx-1.12.2/src/core/nginx.h

到这个文件里改版本号

哥哥教你~Nginx优化与防盗链_第1张图片

编译一下

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx–with-http stub status module

哥哥教你~Nginx优化与防盗链_第2张图片

修改用户与组

vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
#取消注释,修改用户为ng1nx,组为nginx
systemctl restart nginx
ps aux | grep nginx
主进程由root创建,子进程由nginx创建

缓存时间

当Ngix将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度。一般针对静态网页设置,对动态网页不设置缓存时间

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

哥哥教你~Nginx优化与防盗链_第3张图片

[root@localhost nginx-1.12.2]# cd /usr/local/nginx/html/
可以在这个目录下存放照片

日志切割

#!/bin/bash
# Fileame:fenge.sh
day=$(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/kgc.com-access.log-$d
ay
#移动并重命名日志文件
kill -USR1 $(cat $pid_path)
#重建新日志文件
find $log_path -mtime +30 -exec rm -rf {} \;
#删除30天之前的日志文件

小知识,三个时间用法ctime、atime、mtime

在linux操作系统中,每个文件都有很多的时间参数,其中有三个比较主要,分别是ctime,atime,mtime

ctime(status time):
当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,
只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时
间。
atime (accesstime):
当使用这个文件的时候就会更新这个时间。

mtime (modification time):
当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

连接超时

HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TcP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。
KeepAlive
在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会彩响性能。
vim /usr/local/nginx/conf/nginx.conf
keepalive timeout 65 180;
三次握手的超时时间
client header timeout 80;
等待客户端发送请求头的超时时间会发送408错误
client body timeout 80;
设置客户端发送请求体的超时时间

哥哥教你~Nginx优化与防盗链_第4张图片

date用法

date -s 2022-07-23
date -s "2022-07-21 16:05:00"

更改进程数

在高并发场景,需要启动更多的gix进程以保证快速响应,以处理用户的请求,避免造成阻塞

cat /proc/cpuinfo | grep -c "physical id"
查看cpu核数
ps aux | grep nginx
善查看nginx主进程中包含几个子进程
vim /usr/local/nginx/conf/nginx.conf

worker_processes 2;修改为可数相同或者2倍;使用多少系统的线程/进程资源
worker_cpu_affinity 01 10; 设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000
内核优化,做亲和度,指定2/4个线程怎么使用CPU的内核,目的是让CPU的内核压力均衡

哥哥教你~Nginx优化与防盗链_第5张图片

. 配置网页压缩

  • Nginx 的 ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能,允许 Nginx 服务器将输出内容发送到客户端之前进行压缩,以节约网站的带宽,提升用户的访问体验
  • 默认 Nginx 已安装该模块,只需要在配置文件中加入相应的压缩功能参数对压缩性能进行优化即可
2.1 压缩功能参数
[root@server2 conf]# vim/usr/local/nginx/conf/nginx.conf
http {
......
gzip on;					
#开启gzip压缩功能
gzip_min_length 1k;
#用于设置允许压缩的页面最小字数
gzip_buffers 4 16k;
#表示申请4个单位为16KB的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
gzip_http_version 1.1;
#用于识别http协议版本,默认是1.1,目前大部分浏览器已支持gzip压缩,但处理很慢,也比较消耗CPU资源
gzip_comp_level 6;
#用来指定gzip压缩比,压缩比1最小,处理速度最快;压缩比为9最大,传输速度快,但处理速度最慢,使用默认即可
gzip_vary on;
#该选项可以让前端的缓存服务器缓存经过gzip压缩的页面
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 application/javascript application/json;
#压缩类型,表示哪些网页文档启用压缩功能
......
}


gzip on;					
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
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 application/javascript application/json;

上传图片到 /usr/local/nginx/html 目录下

[root@server2 conf]# cd /usr/local/nginx/html/
[root@server2 html]# ls
50x.html  index.html
[root@server2 html]# rz -E
rz waiting to receive.
[root@server2 html]# ls
1.jpg  50x.html  index.html

[root@server2 html]# vim index.html 


    
  

享受孤独就会变强

重启服务访问页面 root@server2 html]# systemctl restart nginx

哥哥教你~Nginx优化与防盗链_第6张图片

盗链与防盗链

  • 盗链是一种恶意行为,在互联网上广泛存在;在企业网站中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失,也避免不必要的带宽浪费
盗链概述

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率,受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益

  • 测试配置所需环境
盗链端http: 192.168.113.129
服务端nginx:192.168.113.128 

防盗链配置文件原理

vim /usr/local/nginx/conf/nginx.conf
http{

.........

server{
.....
	location ~*\(jpglgiflswf)$ {
	valid referers none blocked *.kgc.com kgc.com;
	if ($invalid referer )
	rewrite ^/http://www.kgc.com/error.png:
	#return 403;
}
}
....}
....}
- ~*\.(jpg|gifIswf)$:这段正则表达式表示匹配不区分大小写,以.jpg或.gif或.swf结尾的文件;

- valid referers:设置信任的网站,可以正常使用图片;


- none:允许没有http refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的),如http:Lw,kgc,com/game,jpg我们使用http:Lw.kgc,com访问显示的图片,可以理解成ttp:L,kgc,com/game,jpg这个请求是从http:Lwww,kgc,com这个链接过来的。


- blocked:允许不是http:/开头的,不带协议的请求访问资源;


- *.kgc.com:只允许来自指定域名的请求访问资源,如http:Lwww.kgc,com

- if语句:如果链接的来源域名不在valid referers.所列出的列表中,invalid referer.为true,则执行后而的操作,即进行重写


- 或返回403页面
未开启防盗链时

使用另外一台服务器192.168.113.129做盗链网站

#安装httpd
   yum install -y httpd
   
#切换至/var/www/html
 cd /var/www/html 
 
 [root@localhost html]# vim index.html

   
   
   
   
   
#添加域名映射
#盗链网站
echo "192.168.113.129 www.xtj1.com" >>/etc/hosts 
#目标网站
echo "192.168.113.128 www.xtj.com" >>/etc/hosts

哥哥教你~Nginx优化与防盗链_第7张图片

哥哥教你~Nginx优化与防盗链_第8张图片

#在Web源主机(192.168.113.128)添加域名解析
[root@server2 html]# vim /etc/hosts
192.168.113.128 www.xtj.com

#在Web源主机(192.168.113.128)添加图片


    
  

可以填字例:

在盗链网站重启httpd(192.168.113.129)

验证:占用的是源主机的资源

哥哥教你~Nginx优化与防盗链_第9张图片

开启防盗链

编辑配置文件
**注意:因为location匹配原则为匹配即停止,所以将上面的location注释了

[root@server2 html]# vim /usr/local/nginx/conf/nginx.conf

location ~* \.(jpg|gif|swf)$ {
            valid_referers none blocked *.xtj.com xtj.com;
            if ( $invalid_referer ) {
               rewrite / http://www.xtj.com/daoban.png;
               }
        }


#检查语法是否有错
nginx -t

#将盗图图片拖进去
cd /usr/local/nginx/html/
[root@server2 html]# ls
1.jpg  50x.html  daoban.png  index.html

#重启服务
systemctl restart nginx.service

哥哥教你~Nginx优化与防盗链_第10张图片

image-20220723181751241

验证:

源主机

哥哥教你~Nginx优化与防盗链_第11张图片

盗链网站访问

         }
    }

#检查语法是否有错
nginx -t

#将盗图图片拖进去
cd /usr/local/nginx/html/
[root@server2 html]# ls
1.jpg 50x.html daoban.png index.html

#重启服务
systemctl restart nginx.service


[外链图片转存中...(img-Bg1a6Rom-1658673020871)]

[外链图片转存中...(img-Rd5sj2qX-1658673020872)]

验证:

源主机

[外链图片转存中...(img-dUDl3ARh-1658673020872)]

盗链网站访问

![image-20220723182908237](https://img-blog.csdnimg.cn/img_convert/e3226ed9e7b87737f0ed58e19732ecab.png)

你可能感兴趣的:(二阶,nginx,linux,服务器)