企业—nginx配置文件的参数应用(gzip,客户端限制,https,重定向,图片盗链及其防盗链))

一.配置文件的自检功能的添加及高亮显示

  • 在编译完成之后会再nginx的压缩包的响应目录下产生vim的目录,该目录下的文件就是nginx的配置文件的相关自检,但是没有在系统的家目录下,因此需要对其进行如下配置:
    在这里插入图片描述
    完成后的效果如下:
    在这里插入图片描述

二.nginx的gzip的应用

  • 在配置文件中添加gzip模块
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
添加内容如下:
 33     gzip  on;
 压缩条件:设置允许压缩的最小字节数,即大于1k就对其进行压缩
 34     gzip_min_length 1;
 压缩比:为1-9,1压缩比最小处理速度最快,9压缩比最大处理最慢(传输快但是比较消耗cpu)
 35     gzip_comp_level 2;
 36     gzip_types text/plain application/x-javascript text/css application/xml     text/javascript application/x-httpd/php image/jpeg image/gif image/png;

在这里插入图片描述

  • 测试如下:
  • (1)在默认发布页面导入较大的文件
    在这里插入图片描述
  • (2)在浏览器页面查看,发现40K的文件也被压缩
    在这里插入图片描述
    查看执行过程发现使用了gzip
    在这里插入图片描述

三.对客户端的并发量和下载速度的限制

1.对客户端并发量的限制

nginx可以使用ngx_http_limit_req_module模块的limit_req_zone指令进行限流访问,防止用户恶意攻击刷爆服务器ngx_http_limit_req_module模块是nginix默认安装的,所以可以直接配置即可。

  • 配置文件中添加限流限制

  • 编辑配置文件添加相应的限制内容

配置文件编辑解析如下:

a.在http的默认模块添加,区域名称zone为one(自定义),占用空间大小为10m,平均处理请求的频率不能超过每秒一次。

b.而 b i n a r y r e m o t e a d d r binary_remote_addr是 remote_addr(客户端IP)的二进制格式,固定占用4个字节(可能是c语言的long类型长度)。而 r e m o t e a d d r 7 15 remote_addr是按照字符串存储,占用7-15个字节,这样看来 binary_remote_addr可以节省空间

37     limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;  //含义就是使用http的限流模块,对于客户端的ip进行限流,并且每秒只处理一个请求
50         location /search/ {   //添加http服务的资源
51             limit_req zone=one;
52          }

编辑文件保存退出查看语法错误并且重启服务。
在这里插入图片描述

  • 验证:
  • 在nginx的默认发布目录下建立所添加的资源/search/在里面放入图片
    在这里插入图片描述
  • 在浏览器上查看所添加的资源是否准确
    在这里插入图片描述
  • 在物理机上再次进行压力测试查看实验效果
[root@foundation77 kiosk]# ab -c 1 -n 10 http://172.25.254.1/search/vim.jpg  //-n 请求次数  -c 并发数 表示请求1次,并发数为10 

实验效果如下:
在这里插入图片描述

  • burst,nodelay的添加

概念:

a.burst指缓冲队列的长度

b.nodelay字面的意思是不延迟,具体是说对用户发起的请求不做延迟处理,而是立即处理。比如上面所定义的rate=1r/s,即每秒处理一个请求。如果同一时刻有俩个后缀为.html的请求过来了,若设置了nodey,则会立刻处理这俩个请求。若没设置nodelay,则会严格执行rate=1r/s的配置,即只处理一个请求,直观的看就是页面的数据卡了,过了1秒后才加载出来。

c.真正对限流起作用的配置就是rate=1r/s和burst=5这俩个配置。

  • 配置文件的修改如下;
    在这里插入图片描述
    在这里插入图片描述

  • 在物理机上再次进行压力测试如下:
    在这里插入图片描述
    2.对客户端的限流限制(limit_rate模块)

  • 配置文件的修改

在这里插入图片描述
指的是对search这个资源页面进行限制
在这里插入图片描述

  • 在物理机上进行压力测试查看实验效果
    在这里插入图片描述
  • set $limit_rate 1k;
    显示nginx每秒传输一个字节到浏览器中
  • 在nginx配置文件中的默认的域中添加该限流
    在这里插入图片描述
    在这里插入图片描述
  • 测试:
    在默认的域添加测试源
    在这里插入图片描述
    在浏览器查看
    在这里插入图片描述

四.https加密

1.https简介

  • HTTPS其实由俩部分组成:HTTP+SSL/TLS。也就是在HTTP上又加了一层处理加密信息的模块。服务和客户端的信息传输都会通过TSL进行加密,所以传输的数据都是加密后的数据。

2.https协议原理

  • 首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的。服务器返回给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密文,把数据呈现出来。

3.https加密实现

1.关闭nginx服务,重新编译,需要手动添加ssl模块
a.关掉nginx

[root@server1 conf]# /usr/local/nginx/sbin/nginx -s stop   #关闭nginx

在这里插入图片描述
b.重新编译

[root@server1 nginx-1.15.8]# make clean  #清理make已经生成的makefile以及objs目录下的nginx二进制系统文件
[root@server1 nginx-1.15.8]# yum install -y openssl-devel   ##安装https模块的依赖性软件
[root@server1 ~]# yum install gd-devel-2.0.35-26.el7.x86_64.rpm  #安装依赖包
[root@server1 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_realip_module --with-http_image_filter_module --with-http_ssl_module  #编译
[root@server1 nginx-1.15.8]# make  #安装

在这里插入图片描述
c.将生成的二进制文件objs目录下的nginx文件替换原来的/usr/local/nginx/sbin/nginx文件
在这里插入图片描述
2.在/etc/pki/tls/certs 目录下生成证书,并将锁和钥匙放在nginx的配置文件的目录下

[root@server1 ~]# cd /etc/pki/tls/certs/
[root@server1 certs]# make cert.pem
[root@server1 certs]# cp cert.pem /usr/local/nginx/conf/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.测试nginx的正常访问

a.编辑配置文件
在这里插入图片描述
配置文件编辑内容如下:
在这里插入图片描述
b.开启nginx
在这里插入图片描述
c.添加地址解析
在这里插入图片描述
在这里插入图片描述
d.编写测试页,因为该域名下的资源在/web下面所以需要创建该目录
在这里插入图片描述
在物理机上添加解析:
在这里插入图片描述
在这里插入图片描述
测试访问正常:
在这里插入图片描述
5.再次编写配置文件添加https
a.编辑配置文件
在这里插入图片描述
文件编辑内容如下:
在这里插入图片描述
b.在浏览器页面进行测试,输入https://www.westos.org会出现自动导入证书界面
在这里插入图片描述
证书添加成功之后,再次直接在浏览器输入www.westos.org会直接自动跳转到https页面

五.网页重定向

1.将www.westos.org重定向到https://www.westos.org

  • 编写配置文件
    在这里插入图片描述
  • 重启服务
    在这里插入图片描述
  • 测试
    在这里插入图片描述
    在这里插入图片描述
    注意:当在配置网页的rewrite重写得后面不加$时效果如下:

a.配置文件中去掉$符号
在这里插入图片描述
在这里插入图片描述
b.在物理机上再次测试
在这里插入图片描述
2.永久重定向
只需在后面加permanent即可
在这里插入图片描述
3.将www.westos.org/bbs/index.html重定向到
https://bbs.westos.org/index.html

a.编辑配置文件
在这里插入图片描述
在这里插入图片描述
b.编写测试页
在这里插入图片描述
c.在物理机添加解析
在这里插入图片描述
在这里插入图片描述
d.在物理机上测试
在这里插入图片描述
4.将bbs.westos.org重定向到http://www.westos.org/bbs下

a.编写配置文件
在这里插入图片描述
在这里插入图片描述
b.测试页的编写
在这里插入图片描述
c.物理机上测试
在这里插入图片描述

六.图片盗链与防盗链

1.图片盗链

1.新添加一台nginx主机server2,编写配置文件

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

文件编辑内容如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.server上添加解析
在这里插入图片描述
在这里插入图片描述
3.server2上添加测试页

[root@server2 ~]# mkdir /web
[root@server2 ~]# cd /web/
[root@server2 web]# vim index.html
[root@server2 web]# cat index.html 
<html>

<body>
<br>盗链图片</br>
<img src="http://www.westos.org/vim.jpg">
</body>

</html>

在这里插入图片描述
4.物理机上添加解析
在这里插入图片描述
在这里插入图片描述
5.在server1上的配置文件中添加www.westos.org,并且添加资源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.在物理机上使用server2的daolian.westos.org查看
在这里插入图片描述
则盗链图片成功

2.防盗链

1.在server1上重新编写配置文件
在这里插入图片描述
在这里插入图片描述
2.再次重新访问网页
在这里插入图片描述
发现访问不到图片,则证明防盗链成功

3.如果是盗链图片给用户返回盗链警告图片

  • 编辑server1的配置文件
    在这里插入图片描述
    编辑内容如下:
    在这里插入图片描述
    在这里插入图片描述
  • 添加bbs目录下的资源
    在这里插入图片描述
  • 再次测试
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/89893324