当前位置: 首页 > news >正文

Nginx服务优化以及防盗链

1. 隐藏版本号

以在 CentOS 中使用命令 curl -I http://192.168.66.10 显示响应报文首部信息。

查看版本号

  • curl -I http://192.168.66.10

1. 修改配置文件

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.66.10

隐藏成功

2. 修改源码文件,重新编译安装

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 installvim /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.66.10

2. 修改用户与组

vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; 								#取消注释,修改用户为 nginx ,组为 nginxsystemctl restart nginxps aux | grep nginx

3. 页面缓存时间

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

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

设置主页图片

编辑主页文件


[root@localhost html]# 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="111.jpg"/>

4. 日志切割

vim /opt/fenge.sh
#!/bin/bash
# Filename: 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-$day	#移动并重命名日志文件
kill -USR1 $(cat $pid_path)													#重建新日志文件
find $logs_path -mtime +30 -exec rm -rf {} \;								#删除30天之前的日志文件
#find $logs_path -mtime +30 | xargs rm -rf chmod +x /opt/fenge.sh
/opt/fenge.sh
ls /var/log/nginx
ls /usr/local/nginx/logs/access.log crontab -e
0 1 * * * /opt/fenge.sh

5. 连接超时

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

6.更改进程数

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
#将每个worker子进程与特定CPU物理核心绑定,提升cpu利用率,进而提升性能。避免同一个worker子进程在不同的CPU核心上切换或者多个进程跑在一个CPU上,缓存失效,降低性能。systemctl restart nginx

7. 配置网页压缩

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

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.66.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

8. 配置防盗链

Web源主机(192.168.60.10  www.my.com)

配置映射


[root@localhost ~]# vim /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.66.10 www.my.com
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.66.10 www.kgc.com" >> /etc/hosts 
echo "192.168.66.20 www.benet.com" >> /etc/hosts 
vim /usr/local/nginx/conf/nginx.conf
http {
......server {......location ~* \.(jpg|gif|swf)$ {   #因为自己的盗链图片为png结尾所以此处不设置pngvalid_referers none blocked *.my.com my.com;if ( $invalid_referer ) {rewrite ^/ http://www.my.com/tu2.png;}}......}
}
~* \.(jpg|gif|swf)$ :这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的文件;valid_referers :设置信任的网站,可以正常使用图片;none:允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer 字段的),如 http://www.my.com/tu.jpg
我们使用 http://www.my.com 访问显示的图片,可以理解成 http://www.my.com/tu.jpg 这个请求是从 http://www.my.com 这个链接过来的。blocked:允许不是http://开头的,不带协议的请求访问资源; *.my.com:只允许来自指定域名的请求访问资源,如 http://www.my.comif语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为true,则执行后面的操作。

盗链网站主机(192.168.66.20 www.qyd.com)


[root@localhost ~]# yum install httpd -y  安装apache服务
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# vim index.html
---------------------------------------------                                                                                                         
<html>
<body>
<h1>是谁在盗链</h1>
<img src="http://www.my.com/tu.jpg"/>  #图片链接地址通过浏览器访问http://www.my.com 所得图片地址
</body>
</html>

设置域名映射


[root@localhost ~]# vim /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.66.10 www.my.com
192.168.66.20 www.qyd.com

使用盗链主机访问网页

相关文章:

Nginx服务优化以及防盗链

1. 隐藏版本号 以在 CentOS 中使用命令 curl -I http://192.168.66.10 显示响应报文首部信息。 查看版本号 curl -I http://192.168.66.10 1. 修改配置文件 vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;…...

20231210 随机矩阵和M矩阵

1. 非负矩阵&#xff1a;矩阵元素均非负 定义 7.1.1 设 A ( a i j ) ∈ R m n \boldsymbol{A}\left(a_{i j}\right) \in \mathbb{R}^{m \times n} A(aij​)∈Rmn, 如果 a i j ⩾ 0 , i 1 , ⋯ , m ; j 1 , ⋯ , n , a_{i j} \geqslant 0, \quad i1, \cdots, m ; j1, \cd…...

Linux(centos)学习笔记(初学)

[rootlocalhost~]#:[用户名主机名 当前所在目录]#超级管理员标识 $普通用户的标识 Ctrlshift放大终端字体 Ctrl缩小终端字体 Tab可以补全命令 Ctrlshiftc/V复制粘贴 / &#xff1a;根目录&#xff0c;Linux系统起点 ls&#xff1a; #list列出目录的内容&#xff0c;通常用户查看…...

ECharts标题字体大小自适应变化

我们在做自适应Echarts的时候,字体大小在配置项里是如下配置的, title 标题组件,包含主标题和副标题。 以下是常用的对标题的设置: title:{//设置图表的标题text:"主标题",link:"baidu.com", //设置标题超链接target:"self",...

解决使用pnpm安装时Sharp模块报错的方法

在使用pnpm进行项目依赖安装的过程中&#xff0c;有时候会遇到Sharp模块报错的情况。Sharp是一个用于处理图像的Node.js模块&#xff0c;但它的安装可能会因为各种原因而失败&#xff0c;导致项目无法正常启动。本文将介绍这个问题的方法。 问题描述 解决方法 在命令行分别输…...

Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点

文章目录 一、RDB (Redis Database)1.1 RDB 优势1.2 RDB 缺点1.3 RDB 如何工作1.4 RDB配置1.5 开启/关闭&#xff0c;RDB快照策略&#xff0c;save指令1.6 持久化硬盘文件&#xff0c;dbfilename指令1.7 持久化硬盘文件的存储地址&#xff0c;dir指令 二、AOF (Append Only Fil…...

回味童年经典游戏的项目

目录 1.超级玛丽2.坦克大战3.吃豆人游戏4.贪吃蛇游戏 1.超级玛丽 项目地址&#xff1a;超级马里奥游戏源码 在线试玩网址在资源描述中 在线试玩&#xff1a;http://martindrapeau.github.io/backbone-game-engine/super-mario-bros/index.html 主要语言&#xff1a;JavaScript…...

Electron[5] 渲染进程和主进程

1 进程 Electron里头的进程分为渲染进程和主进程。简单理解&#xff1a; main.js就是主进程每个页面就是渲染进程一个Electron应用仅有一个主进程&#xff0c;可以有多个渲染进程 上面的这些概念很重要&#xff0c;不展开细讲。 2 进程职责 主进程是用来实现应用的基础功能…...

基于Java SSM框架实现大学生校园兼职系统项目【项目源码+论文说明】

基于java的SSM框架实现大学生兼职系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;大学生校园兼职系统当然也不能排除在外。大学生校园兼职系统是以实际运用为开…...

Codeforces Round 913 (Div. 3) A~E

目录 A. Rook 问题分析: B. YetnotherrokenKeoard 问题分析: C. Removal of Unattractive Pairs 问题分析: D. Jumping Through Segments 问题分析: E. Good Triples 问题分析: A. Rook 问题分析: 给一个棋子将其同行同列的位置输出 #include<bits/s…...

反序列化 [网鼎杯 2020 朱雀组]phpweb 1

打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去&#xff0c;func和p 我们需要猜测func和p两个参数之间的关系&#xff0c;可以用php函数MD5测一下看看 我们在响应处得到了一串密文&#xff0c;md5解密一下看看 发…...

Java 何时会触发一个类的初始化

Java 何时会触发一个类的初始化&#xff1f; 使用new关键字创建对象访问类的静态成员变量 或 对类的静态成员变量进行赋值调用类的静态方法反射调用类时&#xff0c;如 Class.forName()初始化子类时&#xff0c;会先初始化其父类&#xff08;如果父类还没有进行过初始化的话&a…...

我的记事本

url uniform resource locator. 统一资源定位符 请求状态码 1XX:信息响应 2XX:成功响应 3XX:重定向消息 4XX:客户端错误响应 5XX:服务器端错误响应 IP地址分类 本机回环IP地址&#xff1a;127.0.0.1 &#xff5e; 127.255.255.254 局域网IP(私网IP) 192.168.0.0 &am…...

GO设计模式——4、单例模式(创建型)

目录 单例模式&#xff08;Singleton Pattern&#xff09; 优缺点 使用场景 饿汉式和懒汉式单例模式 单例模式&#xff08;Singleton Pattern&#xff09; 单例模式&#xff08;Singleton Pattern&#xff09;是一个类只允许创建一个对象&#xff08;或者实例&#xff…...

我对迁移学习的一点理解——领域适应(系列3)

文章目录 1. 领域适应&#xff08;Domain Adaptation&#xff09;的基本概念2.领域适应&#xff08;Domain Adaptation&#xff09;的目标3.领域适应&#xff08;Domain Adaptation&#xff09;的实现方法4.领域适应&#xff08;Domain Adaptation&#xff09;的可以解决的问题…...

【openssl】RSA 生成公钥私钥 |通过私钥获取公钥

通过博客&#xff1a;Window系统如何编译openssl 编译出openssl.exe&#xff08;位于apps文件夹下&#xff09;。 现在需要使用它获得公钥私钥、通过私钥获取公钥 目录 说明&#xff01;&#xff01;&#xff01; 一.定位openssl.exe目录 二、进入命令cmd 三、生成私钥 …...

MongoDB的删除文档、查询文档语句

本文主要介绍MongoDB的删除文档、查询文档命令语句。 目录 MongoDB删除文档MongoDB查询文档 MongoDB删除文档 MongoDB是一种基于文档的NoSQL数据库&#xff0c;它使用BSON格式存储文档。删除文档是MongoDB数据库中的常见操作之一。 下面是MongoDB删除文档的详细介绍和示例&am…...

Rust编程语言入门教程(三)-trait

文章目录 Rust编程语言入门教程&#xff08;三&#xff09;-trait什么是 trait&#xff1f;trait使用举例 Rust编程语言入门教程&#xff08;三&#xff09;-trait 什么是 trait&#xff1f; trait 是 Rust 中的接口&#xff0c;它定义了类型使用这个接口的行为。你可以类比到…...

LeetCode-1566. 重复至少 K 次且长度为 M 的模式【数组 枚举】

LeetCode-1566. 重复至少 K 次且长度为 M 的模式【数组 枚举】 题目描述&#xff1a;解题思路一&#xff1a;题意就是找出长度为m且连续重复k次的子数组。解题思路就是暴力枚举加剪枝。解题思路二&#xff1a;思路差不多解题思路三&#xff1a;0 题目描述&#xff1a; 给你一个…...

QT5.4.1无法打开文件

问题描述&#xff1a;起初是在QT代码中运行打开文件代码&#xff1a; QString gFilename QFileDialog::getOpenFileName(this,"open File",path,"*", nullptr,QFileDialog::DontUseNativeDialog);时&#xff0c;出现了堵塞情况&#xff0c;经过多次实验一…...

Maxwell 磁芯损耗模型怎么选?Power Ferrite vs B-P Curve

🔖 开篇一句话总结 Power Ferrite:用斯坦梅茨公式算损耗,简单高效,适合标准铁氧体材料快速估算。 B-P Curve:直接用实测数据点插值,精度更高,适合非标准材料或追求极致仿真的场景。 一、底层逻辑有什么不一样? 🔹 Power Ferrite:公式拟合的 “标准模板” 它基于经…...

如何高效使用开源视频下载插件:专业用户的终极指南

如何高效使用开源视频下载插件&#xff1a;专业用户的终极指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper VideoDownloadHelper是一款专为…...

生成式AI初学者本地部署实操指南:从报错诊断到模型运行

1. 这不是又一篇“AI科普文”&#xff0c;而是一份写给真实初学者的实操手记Generative AI: A Beginner’s Viewpoint Part 2——这个标题乍看像课程续集&#xff0c;但如果你正站在ChatGPT第一次弹出对话框的那一刻、刚下载完Stable Diffusion却卡在WebUI启动界面、或对着Jupy…...

VN设备通道乱序问题解析与Vector硬件固定配置实战

1. 问题根源&#xff1a;为什么VN设备的通道会“乱跑”&#xff1f;在汽车电子测试领域&#xff0c;Vector的VN系列设备&#xff08;如VN1640A、VN1610等&#xff09;是进行CAN、LIN、FlexRay等总线通信测试与仿真的核心工具。当我们在一个复杂的台架上部署了多台同型号的VN设备…...

AI Infra 后端开发工程师 — 学习路线

AI Infra 后端开发工程师 — 学习路线目标&#xff1a;3个月可切换到AI Infra后端岗位能力迁移地图AI Infra 对应迁移成本Goroutine调度/并发控制思维直接复用Agent会话生命周期管理设计模式相同SSE/WebSocket流式协议实时系统思维GPU显存管理/KV-cache资源约束优化思维推理延迟…...

【系统架构师-综合题(14)】数学与经济管理知识点

数学与经济管理这一章&#xff0c;表面上最不像“系统架构师”的章节&#xff0c;因为它看起来更像一组杂乱的应用题&#xff1a;有组合计数、有工程进度、有集合统计、有线性规划、有图论最短路、最大流、最小生成树、动态规划、指派问题&#xff0c;还有概率决策和匿名调查。…...

昇腾CANN ops-blas 仓:GEMM 算子的高性能实现

前言 矩阵乘法是深度学习里最核心的操作&#xff0c;没有之一。Transformer 的 Attention 要做 QK.T 和 PV&#xff0c;FFN 要做两 个 MatMul。GEMM&#xff08;General Matrix Multiply&#xff09;就是专门优化矩阵乘的算子。ops-blas 仓是 CANN 的线性代数基础算子库&#x…...

COLMAP实战:如何用命令行搞定无人机航拍图像的三维重建?

COLMAP实战&#xff1a;如何用命令行搞定无人机航拍图像的三维重建&#xff1f; 无人机航拍技术正在彻底改变测绘、考古、农业和工程巡检等领域的工作方式。想象一下&#xff0c;你刚刚完成了一次大规模的无人机航拍任务&#xff0c;带回了数百甚至数千张高分辨率图像。这些图像…...

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署步骤详解

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署步骤详解。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...

国产DSP FT-M6678中断开发避坑指南:从CIC配置到向量表编写的完整流程

FT-M6678中断开发实战&#xff1a;从CIC配置到向量表编写的避坑指南 第一次接触FT-M6678的中断系统时&#xff0c;我被各种专业术语和复杂的寄存器配置搞得晕头转向。直到项目进度告急&#xff0c;我才意识到那些看似晦涩的CIC配置细节&#xff0c;实际上决定了整个系统的实时响…...