nginx设置缓存时间、日志分割、开启多进程、网页压缩、配置防盗链

news2024/11/17 1:41:35

一、设置缓存时间

        当网页数据返回给客户端后,可针对静态网页设置缓存时间,在配置文件内的http段内server段添加location,更改字段expires 1d来实现:避免重复请求,加快访问速度

第一步:修改主配置文件

#修改配置文件
vim    /apps/nginx/conf/nginx.conf
        #添加以下内容
        location ~ \.(jpg|png|bmp|gif)$ {
            root   html;
            expires 1d;
        }
​  

#查看是否有语法错误
nginx -t

#重启服务
systemctl restart nginx.service 

第二步:导入图片并对网页文件进行编辑

第三步:编辑主页文件

vim index.html 
-------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
 
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
 
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
 
<p><em>Thank you for using nginx.</em></p>
<img src="1.jpg"/>         #插入添加此行

第四步:验证

#查看是否有语法错误
nginx -t

#重启服务
systemctl restart nginx.service 

#在网页中查看服务
192.168.200.12

Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。
也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

二、日志分割

   使用脚本将很多日志进行切割,可以增加工作效率,方便管理

#编写日志分割脚本
vim /opt/rzfg.sh
----------------------------------------------
#!/bin/bash
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}/kgc.com-access.log-$d
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 -exec rm -rf {} \;
#find $logs_path -mtime +30 |xargs rm -rf
-------------------------------------------------------
#赋权
chmod +x /opt/rzfg.sh
 
#执行脚本
/opt/rzfg.sh
 
#查看日志是否生成
ls /var/log/nginx
ls/usr/local/nginx/logs/access.log 
 
#定时执行日志分割
crontab -e
0 1 * * * /opt/fenge.sh
 
 
#######################注释###############################
#!/bin/bash
#显示前一天的时间
DAY=$(date -d "-1 day" +%Y%m%d)
#定义日志存放目录的路径                            
LOG_PATH="/var/log/nginx"
#定义Nginx PID文件路径
PID_PATH="/usr/local/nginx/logs/nginx.pid"
#判断日志存放目录是否存在,如果不存在则创建日志文件目录
[ -d $LOG_PATH ] || mkdir -p $LOG_PATH                         
#移动并重命名日志文件
mv /usr/local/nginx/logs/access.log ${LOG_PATH}/my.com-access.log-$DAY
#在Nginx目录下重建新日志文件
kill -USR1 $(cat $PID_PATH)                                        
#删除30天之前的日志文件
find $LOG_PATH -mtime +30 -exec rm -rf {} \;                    
#find $LOG_PATH -mtime +30 | xargs rm -rf 

三、开启多进程

cat /proc/cpuinfo | grep -c "physical id"    #查看cpu核数
ps aux | grep nginx                            #查看nginx主进程中包含几个子进程
 
#修改配置文件
vim /apps/nginx/conf/nginx.conf
------------------------------------------------------------------------
worker_processes  2;                
#修改为核数相同或者2倍
 
worker_cpu_affinity 01 10;    
#设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000   
#1所在的位置代表cpu的ID号 
-----------------------------------------------------------
 
#重启服务
systemctl restart nginx
 
#验证是否为两个
ps aux | grep nginx    

四、网页压缩

         Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装,可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

vim /usr/local/nginx/conf/nginx.conf
---------------------------------------
http {
...... 
   gzip on;                            #取消注释,开启gzip压缩功能
   gzip_min_length 1k;              #最小压缩文件大小
   gzip_buffers 4 16k;              #压缩缓冲区,大小为4个16k缓冲区
   gzip_http_version 1.1;           #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
   gzip_comp_level 6;               #压缩比率
   gzip_vary on;                    #支持前端缓存服务器存储压缩页面
   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;        #压缩类型,表示哪些网页文档启用压缩功能
...... 
}
----------------------------------------------------
 
#重启服务
systemctl restart nginx.service 

五、配置防盗链

实验准备:

web源主机(192.168.200.12 www.zhuo.com)

盗链主机 (192.168.200.11 www.fake.com)

5.1 配置web源主机(192.168.200.12 www.zhuo.com)

5.1.1 安装nginx服务并配置被盗链图片

#安装nginx服务
yum或编译安装都可
此处使用编译安装,路径为/usr/local/nginx
不再演示,安装教程可见《Nginx的搭建与核心配置》
 
#导入图片1.jpg
准备一张图片 改名为1.jpg
 
#切换目录
cd /apps/nginx/html/
 
#上传图片
rz -E
 
#编辑主页文件
vim index.html 
-------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
 
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
 
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
 
<p><em>Thank you for using nginx.</em></p>
<img src="1.jpg"/>         #插入添加此行
 
-------------------------------------------------------
#检查和重启服务
nginx -t
systemctl restart nginx
 
#验证
火狐输入

192.168.200.11

5.1.2 配置域名映射关系 

#修改主机名和IP配置文件
vim /etc/hosts
-------------------------------------------------- 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.12 www.zhuo.com       #添加此行
 
#关闭防火墙并重启服务
systemctl stop firewalld.service 
setenforce 0
systemctl restart nginx

5.2 配置盗链主机 (192.168.200.11 www.fake.com)

5.2.1 安装apache服务并配置盗链主页

#安装apache服务
yum install httpd -y  
 
#配置盗链主页
vim /var/www/html/index.html
---------------------------------------------                                                                                                         
<html>
<body>
<h1>盗链</h1>
<img src="http://www.zhuo.com/1.jpg"/>  #图片链接地址通过浏览器访问http://www.zhuo.com 所得图片地址
</body>
</html>

5.2.2 设置域名映射

vim /etc/hosts
-----------------------------------------------------------
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.79.210 www.zhuo.com
192.168.79.28 www.fake.com

5.2.3 重启服务并测试 

#关闭防火墙并重启服务
systemctl stop firewalld.service 
setenforce 0
systemctl restart httpd
 
#在盗链主机(192.168.79.28 )的浏览器中输入盗链主机的域名
打开火狐输入
192.168.200.12 或 www.zhuo.com

192.168.200.11 或 www.fake.com
验证是否被盗链

5.3 在web源主机(192.168.200.12 www.zhuo.com)中配置防盗链

5.3.1 将盗链图片放入web源主机中

cd /apps/nginx/html/      #切换目录
rz -E                          #上传图片

5.3.2 配置防盗链

vim /apps/nginx/conf/nginx.conf    (约49行开始插入
--------------------------------------------------------
http {
......
    server {
    ......
        location ~* \.(jpg|gif|swf)$ {
            valid_referers none blocked *.zhuo.com zhuo.com;
            if ( $invalid_referer ) {
                rewrite ^/ http://www.zhuo.com/2.jfif;
            }
        }
------------------------------------------------------------
~* \.(jpg|gif|swf)$ :这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的文件;
 
valid_referers :设置信任的网站,可以正常使用图片;
 
none:允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer 字段的),如 http://www.zhuo.com/2.jfif 
我们使用 http://www.zhuo.com 访问显示的图片,可以理解成 http://www.zhuo.com/2.jfif 这个请求是从 http://www.zhuo.com 这个链接过来的。
 
blocked:允许不是http://开头的,不带协议的请求访问资源; 
 
*.zhuo.com:只允许来自指定域名的请求访问资源,如 http://www.zhuo.com
 
if语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为true,则执行后面的操作
 

5.4 验证防盗链是否有效

#在盗链主机(192.168.79.28 )的浏览器中输入盗链主机的域名
打开火狐输入
192.168.200.12 或 www.zhuo.com

192.168.200.11 或 www.fake.com
验证是否被盗链

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sora如何申请,Sora如何使用(最新详细教程)

引言 OpenAI发布的Sora模型以及有一段时间了~现在在tiktok的sora官网上也时长发布最新的视频。 OpenAI Tiktok的官网 那么普通人如何申请sora和使用sora呢&#xff0c;可以参考以下方式~ 1、虚假的Sora使用渠道2、真实的Sora使用渠道3、什么是OpenAI Red Teaming Network4、…

深度学习 精选笔记(2)自动求导与概率

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

《HelloGitHub》第 95 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、Java、Go、C/C、Swift...让你在短时间内…

第十一届教育与心理科学国际会议(ICEPS 2024)即将召开!

​ 2024年第十一届教育与心理科学国际会议&#xff08;ICEPS 2024&#xff09;将于2024年5月10-12日在泰国普吉岛万豪酒店举行。本次会议由泰国艺术大学主办&#xff0c;并得到日本实践女子大学的支持。ICEPS 2024旨在为来自世界各地教育相关领域的学者和专业人士提供一个齐聚一…

EMO在哪体验?阿里对口型视频生成工具EMO下载地址?阿里巴巴新模型EMO的技术原理

这几天,阿里的对口型视频生成工具EMO火了。根据官方宣传,EMO只需要上传一张图片和一段音频就可以一键生成对口型视频,而且视频中的嘴型还可以与声音匹配。这项技术支持多语言、对话、唱歌以及快速语速的适配,但也可能成为制造虚假视频的利器,因此一些名人可能需要警惕了。…

Springboot解决模块化架构搭建打包错误找不到父工程

Springboot解决模块化架构搭建打包错误找不到父工程 一、情况一找不到父工程依赖1、解决办法 二、情况二子工程相互依赖提示"程序包xxx不存在" 一、情况一找不到父工程依赖 报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言&#xff1a;pythonjavanode.jsphp均支持 运行软件:idea/eclip…

射影变换的一种解法

1、欧式变换 参考《计算机视觉中的多视图几何》1.4节定义。 欧式变换也叫等距变换&#xff0c;是刚体运动模型&#xff0c;可以表示为&#xff1a; 其中的ε1&#xff0c;更简洁的形式是&#xff1a; 2、相似变换 相似变换是一个等距变换和一个均匀缩放的复合&#xff0c;表…

【学习心得】浏览器开发者工具中出现的VM开头的JS文件是什么?

一、现象描述 在Chrome的开发者工具中&#xff0c;你可能会看到一些以“VM”开头的JavaScript文件&#xff08;如“VM111.js”&#xff09;。 二、VM文件到底是什么&#xff1f; “VM”表示的是Virtual Machine&#xff08;虚拟机&#xff09;&#xff0c;这些文件通常表示由浏…

数据结构之树结构(上)

存储方式 数组存储方式的分析 优点&#xff1a;通过下标方式访问元素&#xff0c;速度快。对于有序数组&#xff0c;还可使用二分查找提高检索速度。 缺点&#xff1a;如果要检索具体某个值&#xff0c;或者插入值&#xff08;按一定顺序&#xff09;会整体移动&#xff0c;效…

实时抓取SKU商品属性详细信息API数据接口(淘宝,某音)

item_sku-获取sku详细信息 taobao.item_sku详细信息 API公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_sku 名称类型必须描述keyString是调用key&#xff08;演示示例&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地…

千帆杯——对话第一期最强挑战者

千帆杯——对话第一期最强挑战者 ​ 在2月22日晚&#xff0c;百度开展直播&#xff0c;邀请了千帆杯第一期最强挑战者杨之正、百度主任研发架构师董大祥老师、以及Datawhale成员司玉鑫为大家带来直播分享。我听了直播后&#xff0c;感觉受益匪浅&#xff0c;于是选择记录一下直…

基于springboot+vue的新冠病毒密接者跟踪系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

【Android】属性动画

在属性动画出现之前&#xff0c;Android 系统提供的动画只有帧动画和 View 动画。View 动画我们都了解&#xff0c;它提供了 AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation 这4种动画方式&#xff0c;并提供了 AnimationSet 动画集合来混合使用多种动画…

实用指南:SOLIDWORKS数据失真问题的解决之道

在数据处理和模拟计算的过程中&#xff0c;数据失真是一个常见的挑战。数据失真指的是由于计算机或人为操作导致的原始数据与计算结果或实际情况之间的偏差。特别是在使用SOLIDWORKS这类工程设计软件时&#xff0c;数据失真可能由多种因素引起&#xff0c;如软件版本老旧、设置…

AI Word Helper (Chorme Extentions) AI单词助手(谷歌浏览器插件)

AI Word Helper (Chorme Extentions) AI单词助手&#xff08;谷歌浏览器插件&#xff09; 英文网站&#xff0c;划词查单词&#xff0c;还是看不懂&#xff1f;因为单词意思那么多&#xff0c;词性搞不清&#xff0c;上下文搞不清&#xff0c;出来的意思就没法用&#xff0c;G…

【Java】查看class文件的jdk编译版本的两种方式

一、使用文本编辑工具EditPlus 使用EditPlus打开该class文件&#xff0c;字符集选择16进制&#xff08;Hex viewer&#xff09;。 仅看第一行数据&#xff0c;前面8个字节CA FE BA BE是固定的。 之后4个字节00 00 是次版本。 次版本后面的4个字节00 34 就是jdk版本。 jdk版本…

OpenAPI工具、生成器

文章目录 一、OpenAPI工具二、OpenAPI文档四、OpenAPI Generator五、API规范(契约)参考 一、OpenAPI工具 OpenAPI.Tools OpenApi 文档编辑器&#xff0c;推荐使用&#xff1a;Stoplight StudioMock服务器&#xff0c;推荐使用Prism代码生成工具&#xff1a;OpenAPI Generator…

不可多得的干货,网易的朋友给我这份339页的Android面经

这里先放上目录 一 性能优化 1.如何对 Android 应用进行性能分析 android 性能主要之响应速度 和UI刷新速度。 首先从函数的耗时来说&#xff0c;有一个工具TraceView 这是androidsdk自带的工作&#xff0c;用于测量函数耗时的。 UI布局的分析&#xff0c;可以有2块&#x…

Kubernetes工作负载重点总结

文章目录 1、容器2、Pod3、工作负载4、Deployment5、StatefulSet5、DaemonSet6、Job7、CronJob 1、容器 容器&#xff1a; 容器是容器镜像的运行态&#xff0c;通过基于标准的容器运行时运行&#xff0c;将应用程序从底层的主机设施中解耦。 容器镜像&#xff1a; 容器镜像是一…