Nginx:Nginx优化与防盗链

news2025/1/10 19:12:20

Nginx:Nginx优化与防盗链

  • 一、配置Nginx隐藏版本号
  • 二、修改Nginx用户与组
  • 三、配置Nginx网页缓存时间
    • 3.1 修改配置文件
    • 3.2 页面缓存验证
  • 四、配置Nginx实现连接超时
  • 五、更改Nginx运行进程数
  • 六 、配置Nginx实现网页压缩功能
  • 七、配置Nginx实现防盗链

一、配置Nginx隐藏版本号

curl -I http://192.168.119.10 #显示响应报文首部信息

在这里插入图片描述

  • 方法一:修改配置文件方式
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.119.80.10

在这里插入图片描述

  • 方法二:修改源码文件,重新编译安装
vim /opt/nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION "1.1.1" 					#修改版本号
#define NGINX_VER "IIS" NGINX_VERSION 			#修改服务器类型

cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install

vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;
	......
}

systemctl restart nginx
curl -I http://192.168.119.10

在这里插入图片描述
在这里插入图片描述

二、修改Nginx用户与组

vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; 								#取消注释,修改用户为 nginx ,组为 nginx

systemctl restart nginx                         #必须重启,重载不能生效 

ps aux | grep nginx
主进程由root创建,子进程由nginx创建

在这里插入图片描述在这里插入图片描述

三、配置Nginx网页缓存时间

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

3.1 修改配置文件

vim /usr/local/nginx/conf/nginx.conf
http {
......
	server {
	...... 
		location / {
			root html;
			index index.html index.htm;
		}
		#修改Nginx的配置文件,在location段加入expires 参数
		location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { 		#加入新的 location,以图片作为缓存对象
			root html;
			expires 1d;									#指定缓存时间,1天
		}
......
	}
}

cd /usr/local/nginx/html
rz -E
rz waiting to receive.
ls
50x.html  bbs  game.jpg  index.html  index.php  wordpress
vim test.html
<html>
<body>
<h1>this is my test web!</h1>
<img src="game.jpg"/>
</body>
</html>

systemctl restart nginx

3.2 页面缓存验证

在Linux系统中,打开火狐浏览器,访问 http://192.168.119.10/test.html,按F12,选择网络,单击200响应消息查看响应头中包含 Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

在这里插入图片描述

四、配置Nginx实现连接超时

  • HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自同一客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。
  • KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。
vim /usr/local/nginx/conf/nginx.conf
http {
...... 
    keepalive_timeout 60 60; 
	keepalive_requests 10000;
    client_header_timeout 80;
    client_body_timeout 80;
...... 
}

systemctl restart nginx
  • keepalive_timeout
    指定KeepAlive的超时时间(timeout)。指定一个长连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。 Nginx的默认值是65秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。前面一个60代表服务器超时时间,后面一个60代表客户端超时时间。若将前一个60设置为0,就禁止了keepalive 连接
    第二个参数(可选的)指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx 不会发送 Keep-Alive 响应头。

  • client_header_timeout
    客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。

  • client_body_timeout
    指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。

在这里插入图片描述

五、更改Nginx运行进程数

  • 在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
cat /proc/cpuinfo | grep -c "physical id"	#查看cpu核数
ps aux | grep nginx							#查看nginx主进程中包含几个子进程

vim /usr/local/nginx/conf/nginx.conf
worker_processes  2;				#修改为CPU数或者auto自动获取
worker_cpu_affinity 01 10;			#设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000
#将每个worker子进程与特定CPU物理核心绑定,提升cpu利用率,进而提升性能。避免同一个worker子进程在不同的CPU核心上切换或者多个进程跑在一个CPU上,缓存失效,降低性能。

systemctl restart nginx

六 、配置Nginx实现网页压缩功能

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

vim /usr/local/nginx/conf/nginx.conf
http {
...... 
   gzip on;							#取消注释,开启gzip压缩功能
   gzip_min_length 1k;      		#最小压缩文件大小
   gzip_buffers 4 64k;      		#压缩缓冲区,大小为4个64k缓冲区
   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;		#压缩类型,表示哪些网页文档启用压缩功能
...... 
}

cd /usr/local/nginx/html
先将game.jpg文件传到/usr/local/nginx/html目录下
vim index.html
...... 
<img src="game.jpg"/>				#网页中插入图片
</body>
</html>

systemctl restart nginx

在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他 
访问 http://192.168.119.10/test.html ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

七、配置Nginx实现防盗链

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

if语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为true,则执行后面的操作,即进行重写或返回 403 页面。
网页准备:
Web源主机(192.168.119.10)配置:
cd /usr/local/nginx/html
将game.jpg、error.png文件传到/usr/local/nginx/html目录下
vim index.html
...... 
<img src="game.jpg"/>
</body>
</html>

echo "192.168.119.10 www.kgc.com" >> /etc/hosts 
echo "192.168.119.3 www.benet.com" >> /etc/hosts 

盗链网站主机(192.168.119.3):
cd /usr/local/nginx/html
vim index.html
...... 
<img src="http://www.kgc.com/game.jpg"/>
</body>
</html>

echo "192.168.119.10 www.kgc.com" >> /etc/hosts 
echo "192.168.119.3 www.benet.com" >> /etc/hosts 

在盗图网站主机上进行浏览器验证
http://www.benet.com
或者盗链网站主机(192.168.119.3)装apache服务进行认证
yum install -y httpd
vim /etc/httpd/conf/httpd.conf
#ServerName www.forexample.com:80 #取消注释,把forexample改为benet -->ServerName www.benet.com:80

vim /var/www/html/daolian.html
<html>
<body>
<h1>This is daolian web!</h1>
<img src="http://192.168.119.10/game.jpg"/>
</body>
</html>

echo "192.168.119.10 www.kgc.com" >> /etc/hosts 
echo "192.168.119.3 www.benet.com" >> /etc/hosts
http://www.kgc.com/test.html
http://www.benet.com/daolian.test

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

[数据集][目标检测]目标检测数据集蜜蜂4073张1类别VOC格式

出品方&#xff1a;未来自主研究中心(FIRC) 数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;7398 标注数量(xml文件个数)&#xff1a;7398 标注类别数&#xff…

如何利用宝塔面板快速搭建Wordpress网站?

本章教程&#xff0c;主要介绍一下&#xff0c;如何利用宝塔面板快速搭建Wordpress网站。 目录 一、 前置条件 二、 打开宝塔面板 三、解析域名 四、安装界面 五、主题安装 六、网站预览 一、 前置条件 需要准备一台Linux服务器&#xff0c;系统版本使用centos 7.X。 使用…

这两个PPT素材网站很多大佬都在用

01 OfficePLUS是一款基于Microsoft Office的专业辅助工具&#xff0c;能够为用户提供更加高效、便捷的办公体验。该工具针对多个版本的Office软件进行优化和定制&#xff0c;提供了丰富的功能和实用的设计资源&#xff0c;如PPT模板、Word模板、Excel模板等。 OfficePLUS的主…

除了ChatGPT,还有哪些好用的AI工具?(建议收藏)

目前市面上的AI工具非常多&#xff0c;本文对他们进行了汇总整理&#xff0c;大家可以按需下载或者使用哦~ 一、AI对话聊天工具 1、New Bing&#xff08;AI对话搜索&#xff09; https://cn.bing.com 有点像ChatGPT版的必应&#xff0c;可以帮你搜索问题、回答问题、写文案、写…

简单分析jsjiami.v6加密逻辑

代码案例&#xff1a; var _0xodRjsjiami.com.v6,_0xodR_function(){return[‮_0xodR],_0x4311[_0xodR,TMOw51jPALDkw,w6LDqcOhw7PCqQ,I8OkP0zDs8KF,fyjCv8OB,CMOdEk5b,OnthccOZHXXDoA,UnDCrcKvw61VAsKNw7TCoRN8wpkhFVzCgA40woV6wrTCtMOXbXo,CMOiwohCXsKhw4PDq8KKw5MbPMOnWVjC…

基于LayUI+Servlet的权限管理系统的设计

权限管理是所有后台系统的都会涉及的一个重要组成部分&#xff0c;主要目的是对不同的人访问资源进行权限的控制&#xff0c;避免因权限控制缺失或操作不当引发的风险问题&#xff0c;如操作错误&#xff0c;隐私数据泄露等问题。本系统基于JSPServletJDBCLayUI的技术&#xff…

Java并发体系-第三阶段-JUC并发包-[2]-CompleableFuture,SynchronousQueue

Phaser工具(有时间就了解一下&#xff0c;下面还有队列) 简介 java7中引入了一种新的可重复使用的同步屏障,称为移相器Phaser。Phaser拥有与CyclicBarrier和CountDownLatch类似的功能. 但是这个类提供了更加灵活的应用。CountDownLatch和CyclicBarrier都是只适用于固定数量的…

(5)NUC980先来点个灯如何设置开启自启动

嵌入式Linux开机启动过程&#xff1a; 可以分为以下几个步骤&#xff1a; CPU复位&#xff1a;开机时&#xff0c;CPU会执行复位操作&#xff0c;将内存的内容清空&#xff0c;寄存器的初始值复位。 ROM启动&#xff1a;CPU会从ROM中读取启动程序&#xff0c;将其加载到内存中…

【阅读笔记】时间序列之TPA-LSTM(含Pytorch代码实现)

本文作为自己阅读论文后的总结和思考&#xff0c;不涉及论文翻译和模型解读&#xff0c;适合大家阅读完论文后交流想法&#xff0c;关于论文翻译可以查看参考文献。论文地址&#xff1a;https://arxiv.org/abs/1809.04206 TPA-LSTM 一. 全文总结二. 研究方法三. 结论四. 创新点…

C++ 学习 ::【基础篇:13】:C++ 类的基本成员函数:类类型成员的初始化与构造函数问题

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

科技云报道:数字化时代,企业终端安全防护该“上新”了!

科技云报道原创。 随着云计算、大数据、物联网等创新技术的加速落地&#xff0c;企业原有的网络边界被打破&#xff0c;各种终端设备如&#xff1a;笔记本电脑、台式机、平板电脑、智能手机、物联网终端等成为了新的安全边界。 在此背景下&#xff0c;想确保企业高效办公的灵活…

罗德与施瓦茨FSWP26相位噪声分析仪

罗德与施瓦茨FSWP26 相位噪声分析仪和VCO测试仪 FSWP相位噪声分析仪和VCO测试仪结合极低噪声内源和互相关技术&#xff0c;实现了相位噪声测量的超高灵敏度。因此&#xff0c;即便测量高度稳定的源 (例如在雷达应用中的源) 也只需几秒钟。脉冲信号测量、附加相位噪声 (包括脉冲…

【敲敲云】免费的零代码产品 — 应用用户角色与权限

之前的文章我们介绍了应用创建与设置&#xff0c;应用的使用离不开权限设置&#xff0c;毕竟不是每个人都可以查看所有的工作表&#xff0c;下面我们再来看一下应用的角色与权限。 一、应用用户 应用用户&#xff1a; 结合应用角色&#xff0c;可设置哪些用户可以访问哪些应用或…

Numpy---ndarray的特点、效率

1. Numpy Numpy&#xff08;Numerical Python&#xff09;是一个开源的 Python 科学计算库&#xff0c;用于快速处理任意维度的数组。 Numpy 支持常见的数组和矩阵操作。对于同样的数值计算任务&#xff0c;使用 Numpy 比直接使用 Python 要简洁的多。 Numpy 使用 ndarray 对…

Redis五大数据结构的底层实现

一)String类型:可以使用object encoding name就可以查看字符串的编码 SDS&#xff0c;flags的值不同&#xff0c;那么len和alloc所表示的值的数据范围也不同&#xff0c;所以flags的只是为了标识SDS头的总大小&#xff1b; alloc和len刚开始进行申请内存空间的时候都是相同的 S…

Vue.js 中的父子组件通信方式

Vue.js 中的父子组件通信方式 在 Vue.js 中&#xff0c;组件是构建应用程序的基本单元。当我们在应用程序中使用组件时&#xff0c;组件之间的通信是非常重要的。在 Vue.js 中&#xff0c;父子组件通信是最常见的组件通信方式之一。在本文中&#xff0c;我们将讨论 Vue.js 中的…

原神3.2服务端PC端架设教程

安装教程 安装 MongoDB&#xff0c;不会安装建议使用宝塔面板 sudo apt updatesudo apt install mongodb-orgsudo systemctl enable --now mongod 直接启动.如果失败看看数据库启动了没有.端口一致 ./start.sh 安装配置JDK17 双击 OpenJDK17U-jdk_x64_windows_hotspot_1…

4年经验,面试二十多家公司后的整理....

先说一下自己的个人情况&#xff0c;普通二本计算机专业毕业&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xff0c;会性能&#xff0c;然而离职后到今天都没有收到一份offer&#xff01;一直在待业中&#xff0c;从离职第一天就开始准备简历&#xff0c…

【Proteus仿真】【51单片机】智能婴儿车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波&#xff0c;声音传感器、L298N直流电机、语音蓝牙控制等。…

搭建属于你自己的New Bing

前言 在这篇博客中&#xff0c;您将学习如何使用 Render 部署 go-proxy-bingai 项目&#xff0c;以便在不需要登录的情况下体验微软 Bing AI 的所有功能。 作者GitHub项目地址&#xff1a;adams549659584/go-proxy-bingai: 用 Vue3 和 Go 搭建的微软 New Bing 演示站点&#x…