010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全

article/2025/8/14 22:53:50

文章目录

    • 1 OSS
      • 1.1 什么是 OSS 存储?
      • 1.2 OSS 核心功能
      • 1.3 OSS 的优势
      • 1.4 典型使用场景
      • 1.5 如何接入 OSS?
      • 1.6 注意事项
      • 1.7 cloudreve实战演示
        • 1.7.1 配置cloudreve连接阿里云oss
        • 1.7.2 常见错误
        • 1.7.3 安全测试影响
    • 2 反向代理
      • 2.1 正向代理和反向代理
      • 2.2 演示
      • 2.3 安全测试影响
    • 3 负载均衡
      • 3.1 负载均衡的核心作用
      • 3.2 常见负载均衡算法
      • 3.3 负载均衡的实现层级
      • 3.4 典型负载均衡方案
      • 3.5 关键实践要点
      • 3.6 应用场景示例
      • 3.7 常见挑战与解决
      • 3.8 演示
      • 结语

1 OSS

OSS(对象存储服务)介绍
以阿里云 OSS(Object Storage Service)为例


1.1 什么是 OSS 存储?

OSS(Object Storage Service)是对象存储服务,由云服务商(如阿里云、AWS S3、腾讯云 COS 等)提供的一种海量、安全、低成本的云存储服务。

  • 核心特点
    • 对象存储:数据以对象(Object)形式存储,每个对象包含数据本身、元数据和唯一标识符(Key)。
    • 无限扩展:支持海量数据存储,理论上容量无上限。
    • 高可用性:数据跨多设备、多机房冗余存储,保障 99.9999999999%(12 个 9)的持久性。
    • 低成本:按实际使用量付费(存储量、流量、请求次数等),无前期硬件投入。

1.2 OSS 核心功能

  1. 数据存储与管理
    • 支持文本、图片、音视频、日志等任意类型文件存储。
    • 提供文件夹(目录)模拟功能,可通过 Key(如 images/2023/photo.jpg)管理文件层级。
  2. 访问与控制
    • 权限管理:支持私有读写、公共读、自定义权限(如通过 STS 临时令牌授权)。
    • 访问方式
      • API/SDK:通过 RESTful API 或各类语言(Python/Java/Go 等)的 SDK 接入。
      • 控制台:通过网页管理文件。
      • 工具:OSS Browser、ossutil 等客户端工具。
  3. 数据处理
    • 图片处理:缩放、裁剪、水印、格式转换等。
    • 视频处理:转码、截图、水印等。
    • 数据加速:结合 CDN 实现全球加速访问。
  4. 数据安全
    • 加密存储:支持服务器端加密(SSE)、客户端加密。
    • 日志与监控:记录访问日志,监控存储桶(Bucket)流量、请求次数等。
    • 版本控制:防止文件误删或覆盖,支持历史版本恢复。

1.3 OSS 的优势

场景传统存储(如硬盘/NAS)OSS 存储
扩展性受硬件限制,扩容复杂按需自动扩展,无需手动管理
可靠性依赖单设备,易丢失数据多副本冗余,跨机房容灾
成本前期硬件投入高按使用量付费,无前期成本
访问速度本地网络延迟低结合 CDN 可全球加速
适用场景小规模、高频读写场景海量数据、低频率访问场景

1.4 典型使用场景

  1. 静态资源托管
    • 网站图片、CSS/JS 文件、视频等静态资源存储,结合 CDN 加速访问。
  2. 大数据分析
    • 存储海量日志、传感器数据,供 Hadoop/Spark 等大数据框架直接分析。
  3. 备份与归档
    • 冷数据(如数据库备份、监控录像)存储,支持低频访问存储(IA)和归档存储类型以降低成本。
  4. 云原生应用
    • 容器化应用、Serverless 函数(如 AWS Lambda)的持久化存储方案。

1.5 如何接入 OSS?

以阿里云 OSS 为例:

  1. 创建存储桶(Bucket)

    • 登录阿里云控制台,选择地域(Region)和存储桶名称(全局唯一)。
    • 设置存储类型(标准/低频/归档)、权限(如私有读写)。
  2. 上传/下载文件

    • 通过 API/SDK 或控制台上传文件,生成访问链接(需配置权限)。
    # Python SDK 示例(上传文件)
    from oss2 import Auth, Bucket
    auth = Auth('<AccessKey>', '<SecretKey>')
    bucket = Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'my-bucket')
    bucket.put_object('example.txt', 'Hello OSS!')
    
  3. 管理文件生命周期

    • 配置自动删除过期文件、转换存储类型等规则。

1.6 注意事项

  • 费用优化:根据访问频率选择合适的存储类型(标准/低频/归档)。
  • 流量控制:外网下载可能产生流量费用,建议结合 CDN 或内网传输。
  • 版本控制:开启版本控制避免误删文件。
  • 安全性:避免使用公开读写权限,推荐通过临时令牌(STS)授权访问。

1.7 cloudreve实战演示

  • 原理:内容分发
  • 影响:
  • 演示:软件地址见下面链接1
  • 环境:window server + cloudreve + 阿里云oss
1.7.1 配置cloudreve连接阿里云oss

第一步:启动应用,如下图所示,在这里插入图片描述

第三步:阿里云oss新建bucket,配置AccessKey、SecretKey,如果已配置过,跳过该步骤继续第三步

第二步:管理面板配置OSS存储策略,如下图所示,在这里插入图片描述

第四步:上传文件测试,成功长传如图所示,在这里插入图片描述

1.7.2 常见错误

阿里云OSS回调错误(203: error status:301.)

  • 临时解决方案:阿里云ecs服务器安全组临时添加允许所有来源所有类型的请求
1.7.3 安全测试影响

上传的文件或解析的文件均来自于oss资源,无法解析

  • 修复上传安全
  • 文件解析不一样
  • 存在AccessKey隐患

2 反向代理

2.1 正向代理和反向代理

对比维度正向代理 (Forward Proxy)反向代理 (Reverse Proxy)
定义代理客户端向外部服务器发送请求,隐藏客户端身份。代理服务器接收客户端请求,隐藏后端服务器身份。
位置部署在客户端侧(如企业内网、用户设备)。部署在服务端侧(如数据中心、云服务器)。
作用方向客户端主动配置代理,代理代表客户端访问目标服务。客户端无感知,代理直接接收请求并转发给后端服务。
隐藏对象隐藏客户端的真实 IP 或身份。隐藏后端服务器的真实 IP 或架构细节。
主要用途- 突破网络限制(如访问被屏蔽的网站) - 匿名访问 - 客户端缓存加速- 负载均衡 - 安全防护(如防 DDoS) - 服务端缓存加速 - SSL 终端卸载
典型场景- 企业内网用户通过代理访问外网 - VPN 或科学上网工具- 网站使用 Nginx 反向代理分发请求 - CDN 节点代理源站
配置方由客户端主动配置(浏览器或系统设置)。由服务器管理员配置,客户端无感知。
加密与安全可能用于加密客户端到代理的通信(如 HTTPS)。通常用于加密客户端到代理的通信,并保护后端服务器。
常见工具Squid、Shadowsocks、VPNNginx、HAProxy、Cloudflare、Traefik

核心区别总结

  1. 作用方向
    • 正向代理:客户端主动通过代理访问外部资源(代理代表客户端)。
    • 反向代理:服务端通过代理接收请求并分发(代理代表服务端)。
  2. 隐藏对象
    • 正向代理:隐藏客户端身份。
    • 反向代理:隐藏服务端身份。
  3. 典型应用
    • 正向代理:科学上网、内网访问外网。
    • 反向代理:负载均衡、CDN、API 网关。

2.2 演示

演示环境:windows server + BT宝塔面板+nginx

配置反向代理地址如下图所示:在这里插入图片描述

配置文件如下所示:

location /
{expires 12h;if ($request_uri ~* "(php|jsp|cgi|asp|aspx)"){expires 0;}proxy_pass https://www.baidu.com;proxy_set_header Host www.baidu.com;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header REMOTE-HOST $remote_addr;add_header X-Cache $upstream_cache_status;proxy_set_header Accept-Encoding "";sub_filter_once off;proxy_cache cache_one;proxy_cache_key $host$uri$is_args$args;proxy_cache_valid 200 304 301 302 12h;
}

效果如下图所示:

在这里插入图片描述

2.3 安全测试影响

影响:访问目标只是一个代理,非真实应用服务器

tips:正向代理和反向代理都是解决访问不可达的问题,但由于反向代理中多出一个可以重定向解析的功能操作,导致反向代理站点指向和真实应用没有关系。

3 负载均衡

负载均衡(Load Balancing)是一种将网络流量、计算任务或数据请求合理分配到多个服务器或资源的技术,旨在提高系统性能、可靠性和资源利用率。以下是负载均衡的核心概念和应用解析:


3.1 负载均衡的核心作用

  1. 流量分发
    将用户请求均匀分配到多台服务器,避免单点过载。
  2. 高可用性
    自动检测故障节点,将流量切换到健康服务器,保障服务连续性。
  3. 横向扩展
    通过增加服务器实例应对高并发,提升系统吞吐量。
  4. 优化资源利用
    根据服务器性能动态分配任务,避免资源浪费。

3.2 常见负载均衡算法

算法类型原理适用场景
轮询(Round Robin)按顺序依次分配请求服务器性能相近的无状态服务
加权轮询根据服务器权重分配流量(权重=性能)服务器性能差异较大的场景
最少连接(Least Connections)优先分配给当前连接数最少的服务器长连接场景(如数据库、WebSocket)
IP哈希根据客户端IP哈希值固定分配到某服务器需要会话保持(Session粘滞)
响应时间优先选择响应最快的服务器对延迟敏感的应用

3.3 负载均衡的实现层级

  1. 四层负载均衡(传输层,TCP/UDP)
    • 基于IP和端口进行流量转发(如LVS、F5)。
    • 高性能,适用于低延迟场景(如游戏、视频流)。
  2. 七层负载均衡(应用层,HTTP/HTTPS)
    • 解析应用层协议,支持基于URL、Cookie的路由(如Nginx、HAProxy)。
    • 功能强大,支持SSL终止、内容压缩、缓存等。

3.4 典型负载均衡方案

  1. 硬件负载均衡器
    • 专用设备(如F5 BIG-IP、Citrix ADC),性能高但成本昂贵。
  2. 软件负载均衡器
    • 开源工具(如Nginx、HAProxy、Envoy),灵活且易于扩展。
  3. 云服务负载均衡器
    • AWS ALB/NLB、阿里云SLB、腾讯云CLB,集成自动扩缩容和健康检查。
  4. DNS负载均衡
    • 通过DNS解析将域名映射到多个IP,简单但缺乏实时健康检测。

3.5 关键实践要点

  1. 健康检查(Health Check)
    • 定期检测后端服务器状态(如HTTP状态码、端口连通性)。
  2. 会话保持(Session Persistence)
    • 使用Cookie或IP哈希确保用户请求分配到同一服务器。
  3. 弹性伸缩(Auto Scaling)
    • 结合云平台动态增减服务器实例(如AWS Auto Scaling + ALB)。
  4. 安全防护
    • 在负载均衡层集成WAF、DDoS防护(如Cloudflare、阿里云盾)。

3.6 应用场景示例

  • Web服务:通过Nginx将HTTP请求分发到多台Tomcat服务器。
  • 微服务架构:Kubernetes使用Ingress Controller实现服务间流量调度。
  • 数据库读写分离:将读请求分配到多个从库,写请求指向主库。
  • 全球加速:使用CDN和地理负载均衡将用户导向最近的节点。

3.7 常见挑战与解决

  • 单点故障:部署负载均衡器集群(如Keepalived实现主备切换)。
  • 性能瓶颈:使用DPDK(数据平面开发套件)优化网络包处理。
  • 复杂路由逻辑:七层负载均衡结合API网关(如Kong、Traefik)。

3.8 演示

基于web服务,这里通过nginx将http请求分发到多台服务器

环境:windows server + BT宝塔面板 + Nginx

影响:有多个服务器加载服务,测试过程中存在多个目标情况

nginx基础负载均衡

http {upstream backend_servers {# 定义后端服务器列表server 192.168.1.101:80;server 192.168.1.102:80;server 192.168.1.103:80;}server {listen 80;server_name example.com;location / {# 将请求代理到后端服务器组proxy_pass http://backend_servers;# 可选:设置代理头信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}

结语

❓QQ:806797785

⭐️仓库地址:https://gitee.com/gaogzhen

⭐️仓库地址:https://github.com/gaogzhen

[1]cloudreve github地址[CP/OL].

[2]站长工具-ping检测[CP/OL].


http://www.hkcw.cn/article/diIiwlAZMh.shtml

相关文章

FREERTOS+LWIP+IAP实现TCP、HTTP、网页访问并固件升级、更新配置 (三)lwip实现httpd服务并在web访问

前言 在前两篇文章中配置freeRTOS和&#xff0c;并实现了TCP、UDP的通信协议&#xff0c;现在终于轮到重头戏lwip的httpd服务&#xff0c;LWIP官方例程中是有很多自带的网页的&#xff0c;但是远远不够满足实际项目的使用需求&#xff0c;因此我也是踩了很多坑&#xff0c;从前…

lighthouse(灯塔)前端性能测试工具

前端性能测试工具之lighthouse灯塔 介绍下载链接使用方法前端性能指标解读 介绍 Lighthouse 是一个开源的自动化工具&#xff0c;用来测试前端页面性能&#xff0c;反馈页面问题以提升页面体验。可以联合谷歌浏览器&#xff0c;作为插件导入&#xff0c;开启后可测试页面性能 …

Ai智能体四:互动式 AI 聊天助手:前端实现

在现代 web 应用中,集成智能对话功能已经成为提升用户体验的重要手段之一。本文将介绍如何通过 Vue 3 和 Element Plus 构建一个高效的 AI 聊天助手界面,并详细讲解其实现原理和功能。 1. 整体架构 该聊天界面分为 左侧边栏 和 右侧内容区域,实现了清晰的布局结构,左侧边…

Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)

接触的原因 因开发自己的项目时&#xff0c;写接口文档很繁琐&#xff0c;查到后端都在用swagger等接口工具来记录接口文档&#xff0c;于是学习了一下&#xff0c;本文记录个人配置过程&#xff0c;有问题欢迎指正交流&#x1f601; Swagger&#xff1a; Swagger是一种Rest AP…

OpenWebUI配置异常的外部模型导致页面无法打开

一、使用Ollama关闭OpenAI OpenWebUI自带OpenAI的API设置&#xff0c;且默认是打开的&#xff0c;默认情况下&#xff0c;启动后&#xff0c;会不断的去连https://api.openai.com/v1&#xff0c;但是无法连上&#xff0c;会报错&#xff0c;但是不会影响页面&#xff0c;能正常…

Postman(Apifox)调用WebServicer接口

postman调用WebServicer接口 前言 Postman使用方法Apifox使用方法参数与配置请求代码(当然一般开发会给一个样例)步骤 前言 之前都是使用SoapUI测试WebServicer接口,由于工作所需,需要使用Postman测试工具 Postman使用方法 可以直接在请求里写全部的wsdl地址 ,参数会自动带进…

DeepSeek本地化部署实践:Xinference框架+OpenWebUI实现DeepSeek-r1推理跑在国产GPU之上

近日&#xff0c;我部门从供应商那儿借来一台高算力服务器&#xff0c;用来尝试本地化部署DeepSeek。该服务器型号为ASUS ESC8000A-E11&#xff0c;具体配置如下&#xff1a; CPU&#xff1a;AMD EPYC 7702&#xff08;64核&#xff09;* 2 GPU&#xff1a;&#xff08;天数智…

Android WebRTC集成及JNI性能优化实战指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;WebRTC是一个开源项目&#xff0c;旨在实现浏览器间无需插件的实时通信&#xff0c;包括音频、视频通话及数据共享。在Android平台上&#xff0c;其实施涉及使用JNI接口进行Java与C/C代码的交互。本压缩包内容预…

【前端】超链接标签(a标签)之href属性、target属性

文章目录 一、a标签1、href属性&#xff08;1&#xff09;跳转至网络链接页面&#xff08;2&#xff09;跳转至其它工程页面&#xff08;3&#xff09;跳转至本界面 2、target属性 二、感谢观看&#xff01; 一、a标签 a标签即超链接标签&#xff0c;根据名字我们就能知道它是…

【前端开发】一文带你快速入门JavaScript(下)Web 前端必备程序语言 | 条件语句与循环结构

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

教你在.Net8.0的WinForm中使用WebView2,实现C#和JavaScript的实时双向互操作

1. 前言 随着 Web 技术的发展&#xff0c;使用网页内容&#xff08;HTML、JavaScript、CSS 等&#xff09;作为桌面应用程序的一部分变得越来越常见。在 C# WinForm 中&#xff0c;Microsoft 提供的 WebView2 控件让我们可以轻松地嵌入 Chromium 浏览器&#xff0c;并实现 C# …

【多线程初阶】synchronized锁

文章目录 &#x1f305;synchronized关键字&#x1f30a; synchronized 的互斥&#x1f30a; synchronized 的变种写法&#x1f3c4;‍♂️synchronized 修饰代码块 :明确指定锁哪个对象&#x1f3c4;‍♂️synchronized 修饰方法 &#x1f30a; synchronized 的可重入性&#…

使用 Cython 编译将.py文件加密成.so文件

文章目录 1. .so文件的核心意义和优势2. 使用 Cython 编译&#xff0c;将.py文件加密成.so文件 最近在学习在服务器上如何部署Python模型&#xff0c;不学不知道&#xff0c;一学吓一跳&#xff0c;要学好多啊&#xff0c;最近看到什么就记录一下什么吧。 1. .so文件的核心意义…

环赛里木湖公路自行车赛开赛 速度与激情点燃丝路热土

5月31日上午10时,中国新疆第十七届环赛里木湖(国际)公路自行车赛在精河县鸣枪开赛。首段比赛全长83.1公里,以速度与激情点燃了“中国枸杞之乡”精河县的丝路热土。骑手们从精河县出发,沿精阿高速疾驰,穿越艾比湖湿地和甘家湖梭梭林国家级自然保护区。开赛后仅10分钟,在顺…

南京大学通报施工方偷窃物品 施工单位被罚2000元

5月29日,南京大学基本建设处发布了一份关于对南京诚善科技有限公司执行合同违约金的通报。通报指出,南京大学三校区公共区域饮水机采购及安装项目的施工单位南京诚善科技有限公司的一名员工于5月13日在学校宿舍楼内偷窃学生物品。根据施工合同相关规定并经处办公会研究确认,…

java 反射 枚举与lambda表达式

目录 一.反射 1.概念&#xff1a;在运⾏时检查、访问和修改类、接⼝、字段和⽅法的机制 2.Class类 3.反射相关的类型 4.各类型对应的方法 ​编辑 5.代码示例 (1).class类方法 (2).Field类方法 (3).Constructor类方法 (4).Method类方法 6.总结 二.枚举 1.概念&#x…

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库

文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…

DeepSeek:全栈开发者视角下的AI革命者

无论是想要学习人工智能当做主业营收&#xff0c;还是像我一样作为开发工程师但依然要了解这个颠覆开发的时代宠儿&#xff0c;都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;入行门槛低&#x…

什么是贝叶斯优化(Bayesian Optimization)?

贝叶斯最优化&#xff08;Bayesian Optimization&#xff09;是一种用于函数全局最优化的策略&#xff0c;特别适用于那些计算代价昂贵的黑箱函数&#xff08;如机器学习模型的超参数调优&#xff09;。其核心思想是通过构建一个代理模型&#xff08;通常是高斯过程或随机森林&…

Spring AI+DeepSeek快速构建AI智能机器人

引言 在AI技术蓬勃发展的当下&#xff0c;Spring生态推出了Spring AI项目&#xff0c;为Java开发者提供了便捷的AI集成方案。本文将演示如何用Spring AIDeepSeek V3 快速搭建一个具备自然语言处理能力的智能对话机器人。 一、环境准备 JDK 17 Maven/Gradle构建工具 DeepSe…