如何优化Nginx网页优化,高并发场景,安全优化???_针对高并发场景,如何优化nginx(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

说明:
–user=nginx \ #指定用户
–group=nginx \ #指定组账户


### 第二种:修改配置文件更改;


#### 步骤一:编辑Nginx.conf


vi /usr/local/nginx/conf/nginx.conf


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170054419.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


#### 步骤二:重启服务Nginx;


systemctl restart nginx  
 ps aux|grep nginx #查看进程  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170131774.png#pic_center)


## 三,网页缓存时间


* 避免重复请求,加快访问速度;
* 一般针对静态网页设置,对动态网页不设置缓存时间;


#### 步骤一:在nginx.conf配置文件内,在段内(**http,server,location** ),加入特定内容的过期参数


说明:以图片缓存为例


vi /usr/local/nginx/conf/nginx.conf


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170313845.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


#### 步骤二:重启服务nginx 验证


重启  
 验证  
 输入:20.0.0.25/b.jpg  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170413280.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


## 四,实现Nginx的日志切割;


* Nginx运行时间的不断增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注日志文件;
* 定期进行日志文件的切割;
* 通过脚本,linux的计划性任务周期性的进行日志切割;


1.shell脚本:



vi /opt/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 l o g s p a t h / t e s t . c o m − a c c e s s . l o g − {logs_path}/test.com-access.log- logspath/test.comaccess.logd
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 |xargs rm -rf

chmod +x /opt/fenge.sh


2.在计划性任务内添加任务



crontab -e

30 1 * * * /opt/fenge.sh

最好重启下计划任务
systemctl restart crond
systemctl enable crond


## 五,Nginx的连接保持;


* 避免同一客户端长时间占用连接,造成资源浪费
* Keepalive\_timeout #设置保持连接从超时时间,默认65秒  
 Client\_header\_timeout #指定等待客户端发送请求头的超时时间  
 Client\_body\_timeout #设置请求体读超时时间


#### 步骤一:在nginx.conf配置文件内;


vi /usr/local/nginx/conf/nginx.conf  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170536825.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


* Keepalive\_timeout 65 180; #设置保持连接从超时时间,默认65秒,  
 client\_header\_timeout 80; #指定等待客户端发送请求头的超时时间80秒  
 client\_body\_timeout 80; #设置请求体读超时时间80秒


#### 步骤二:重启服务验证


输入:20.0.0.25![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170634823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


## 六,(高并发应用场景)更改Nginx运行进程数


* 在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞;
* 更改进程的配置方法  
 修改配置文件  
 修改进程配置参数


说明:


* 修改配置文件内的参数  
 一般设为cpu的个数或者核数;  
 在高并发的情况下可设置为cpu个数或者核数的2倍’!
* 增加进程数,可减少了系统的开销,提升了服务速度,


#### 步骤一:查看当前cpu核数2倍


(当前配置是双核双线程的)  
 cat /proc/cpuinfo |grep -c physical


8


#### 步骤二:修改配置文件:


vi /usr/local/nginx/conf/nginx.conf


worker\_processes 8;


#### 步骤三:重启服务,查看进程


systemtl restart nginx


ps aux |grep nginx  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906170810989.png#pic_center)


## 七,Nginx网页压缩功能


* Nginx的ngx\_http\_gzip\_module压缩模块提供对文件内容压缩的功能
* 允许Nginx服务器将输出内容在发送客户端之前进行压缩,
* 节约网站带宽,提升用户的访问体验,默认已经安装模块了;


#### 步骤一:修改配置文件,开启gizp模块;


在gzip on;去掉#号,下添加:



gzip on;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_min_length 1k;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;


注释:  
 1.开启gizp 压缩  
 2.表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间  
 3.用于设置识别http协议版本,默认是1.1  
 4.用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,处理速度慢  
 5.用于设置允许压缩的最小字节数;  
 6.选项可以让前端的缓存服务器缓存经过gzip压缩的页面  
 7.压缩类型,对那些网页文档启用压缩功能;


#### 步骤二:重启服务验证;


重启服务


抓包验证:  
 输入:20.0.0.25/b.jpg  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906173616926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)



说明:
上图抓包可看出,gzip模块一开始,将1033大小的文件,压缩了一半多604!!
节约了网络带宽和浏览体验;


## 八,防盗链


* 在企业网站服务中,一般咱们配置防盗链功能,避免网站内容被非法盗用,造成各方面的损失


咱们模拟一下盗链  
 源主机: www.as.top 20.0.0.25  
 盗链主机: www.hgg.top 20.0.0.26


**(咱们用图片做一下防盗!!)**


#### 步骤一:准备测试防盗图片,index.html添加图片;


vi /usr/local/nginx/html/index.html  
 在末尾合适位置添加图片




验证:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906171210917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


#### 步骤二:准备盗链主机


1.在盗链主机做主机映射


vi /etc/hosts


20.0.0.25 www.as.top


2.修改配置文件index.html



vi /usr/local/httpd/htdocs/index.html

我要开始盗图了


保存


#### 步骤三:验证测试


输入盗链主机ip登录网站:20.0.0.26/index.html  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200906171258812.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzMyMDI4Ng==,size_16,color_FFFFFF,t_70#pic_center)


#### 步骤四:在源主机nginx.confi配置文件内做防盗链



     vi   /usr/local/nginx/conf/nginx.conf                 #在server段内,添加

     location ~\* \.(gif|jpg|swf)$ {
        valid_referers none blocked \*.as.top as.top;
        if ($invalid\_referer) {
           rewrite ^/ http://www.hgg.top/c.jpg;
    }

}

说明:盗链后的图片 咱们指定的是rewrite 盗链主机下的c.jpg图片,咱们可以随意指定的!!!
这样就类似与两边互盗的感觉了,源主机又盗的盗链主机的c.jpg图片
…可能会有点绕,仔细屡屡就明白了


#### 步骤五:验证防盗


1.首先咱们需要做下真机的映射,将两个主机映射添加hosts文件里  


![img](https://img-blog.csdnimg.cn/img_convert/bb74ff6cb53a8682dbf223053efad6cf.png)
![img](https://img-blog.csdnimg.cn/img_convert/a871cb47356684f75d429675757c2cf9.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

的映射,将两个主机映射添加hosts文件里  


[外链图片转存中...(img-I6BNxVG9-1715080017731)]
[外链图片转存中...(img-pF4lASUL-1715080017731)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值