云计算大数据——Nginx 实战系列(性能优化与防盗链配置)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

Nginx 作为高性能的 HTTP 服务器与反向代理服务器,是支撑各类 Web 服务的核心基础设施,其配置的合理性直接决定服务的运行效率、资源成本与安全性。在生产环境中,仅依赖默认配置无法满足业务需求:高并发场景下易出现响应延迟、资源耗尽等问题,而静态资源(图片、视频、CSS/JS 等)又面临被外部网站非法盗用的风险,不仅造成带宽浪费,还会挤占服务器资源、影响合法用户体验。因此,针对 Nginx 开展性能优化与防盗链配置,是兼顾 "服务效率" 与 "资源保护" 的核心举措 ------ 性能优化旨在最大化服务器硬件潜力,提升并发承载能力、降低响应延迟;防盗链配置则通过精准的访问控制,阻断资源盗用、减少无效损耗,两者协同发力,才能实现 Web 服务 "高效、稳定、低成本、高安全" 的运行目标。

一、隐藏版本号

防止攻击者利用特定版本的已知漏洞进行攻击

1.1 查看当前版本号

css 复制代码
curl -I http://192.168.10.123

1.2 方法一:修改配置文件

css 复制代码
vim /usr/local/nginx/conf/nginx.conf

1.3 方法二:修改源码并重编译

css 复制代码
vim /opt/nginx-1.20.2/src/core/nginx.h

重新配置并编译:

css 复制代码
cd /opt/nginx-1.20.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module
make

手动替换二进制文件:

二、修改用户与组

2.1 配置用户与组


三、缓存时间设置

3.1 配置缓存时间

四、日志切割

优化日志分割策略,便于日常分析和文件大小管理,防止日志文件过大。

4.1 日志切割脚本


五、连接超时设置

keepalive_timeout 65 180; # 保持连接的超时时间,空闲连接65秒后关闭,建议客户端超时180秒

client_header_timeout 80; # 客户端发送请求头超时时间

client_body_timeout 80; # 客户端发送请求体超时时间

5.1 配置连接超时参数

六、更改进程数

6.1 优化进程数与 CPU 亲和性

七、配置网页压缩

7.1 启用 Gzip 压缩

css 复制代码
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;       		#压缩比率      1:压缩比最小,速度最快;9:压缩比最大,传输速度最快,但处理也最慢,也比较的消耗CPU资源 
   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;		#压缩类型,表示哪些网页文档启用压缩功能
...... 
}
css 复制代码
cd /usr/local/nginx/html
先将game.jpg文件传到/usr/local/nginx/html目录下
vim index.html
...... 
<html>
<body>
<img src="game.jpg"/>				#网页中插入图片
</body>
</html>

八、配置防盗链

8.1 防盗链配置示例

css 复制代码
vim /usr/local/nginx/conf/nginx.conf
http {
......
	server {
	......
		location ~* \.(jpg|gif|swf)$ {
			valid_referers none blocked *.yjs.com yjs.com;
			if ( $invalid_referer ) {
				# 将请求路径为 ^/(^/会匹配 ​所有请求路径​​)的URL重定向到 http://www.yjs.com/error.png
				rewrite ^/ http://www.yjs.com/error.png;
				#return 403;
            }
        } 
	......
	}
}

8.2 测试准备

css 复制代码
cd /usr/local/nginx/html
将game.jpg、error.png文件传到/usr/local/nginx/html目录下
vim index.html
<html>
<body>
<img src="game.jpg"/>
</body>
</html>

echo "192.168.10.110 www.yjs.com" >> /etc/hosts 
echo "192.168.10.123 www.simoncwh.com" >> /etc/hosts 
css 复制代码
cd /usr/local/nginx/html
vim index.html
...... 
<html>
<body>
<img src="http://www.yjs.com/game.jpg"/>
</body>
</html>

echo "192.168.10.110 www.yjs.com" >> /etc/hosts 
echo "192.168.10.123 www.simoncwh.com" >> /etc/hosts 

九、总结

~* .(jpg|gif|swf)$:匹配不区分大小写,以.jpg、.gif或.swf结尾的文件

valid_referers:配置可信来源网站,允许其正常访问图片资源

访问控制规则:

none:允许不带Referer字段的请求

blocked:允许非http://开头的,不带协议的请求访问资源

*.yjs.com:仅允许来自该域及其子域的请求

优先级: = (精确匹配) > ^~ (前缀匹配) > ~ / ~* (正则匹配) > / (默认匹配)

用途:

精确匹配适用于需要精确控制的路径(如首页)。

前缀匹配用于处理路径较长的请求,特别是静态资源。

正则匹配用于更复杂的模式匹配,如文件类型(图片、CSS 文件等)。

规则顺序:在配置时,确保合理排列 location 规则,确保静态资源和动态请求的正确处理。

总结

Nginx 性能优化与防盗链配置是生产环境部署的两大核心优化方向,二者相辅相成、缺一不可。性能优化围绕 "提升服务能力" 展开,通过调整进程数、连接数、缓存策略、数据压缩等手段,充分释放服务器硬件潜力,有效提升并发处理能力、降低响应延迟,同时减少 CPU、内存、带宽等资源消耗,保障高流量场景下服务的稳定性与用户体验;防盗链配置则聚焦 "保护资源不被滥用",通过校验请求来源(Referer 字段、Token 等),仅允许合法域名访问静态资源,从源头阻断外部盗用行为,既节省了带宽成本、保护了资源版权,又避免无效请求挤占优化后的服务器资源,让性能优化的效果充分落地。

相关推荐
The star"'9 小时前
02-Ansible 基本使用
运维·云计算·ansible
wanhengidc9 小时前
巨 椰 云手机 满足多元需求
运维·服务器·安全·智能手机·云计算
beijingliushao10 小时前
105-Spark之Standalone HA环境搭建过程
大数据·spark
五阿哥永琪10 小时前
Git 开发常用命令速查手册
大数据·git·elasticsearch
数字会议深科技10 小时前
深科技 | 高端会议室效率升级指南:无纸化会议系统的演进与价值
大数据·人工智能·会议系统·无纸化·会议系统品牌·综合型系统集成商·会议室
容智信息11 小时前
容智Report Agent智能体驱动财务自动化,从核算迈向价值创造
大数据·运维·人工智能·自然语言处理·自动化·政务
Evan芙11 小时前
Nginx 平滑升级
数据库·nginx·ubuntu
神算大模型APi--天枢64611 小时前
全栈自主可控:国产算力平台重塑大模型后端开发与部署生态
大数据·前端·人工智能·架构·硬件架构
每日学点SEO12 小时前
「网站新页面冲进前10名成功率下降69%」:2025 年SEO竞争格局分析
大数据·数据库·人工智能·搜索引擎·chatgpt
写代码的【黑咖啡】12 小时前
大数据建模中的模型
大数据