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

文章目录

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

核心区别总结

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

2.2 演示

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

配置反向代理地址如下图所示:

配置文件如下所示:

conf 复制代码
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基础负载均衡

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地址](https://github.com/cloudreve/Cloudreve)\[CP/OL\]. \[2\][站长工具-ping检测](https://ping.chinaz.com/)\[CP/OL\].

相关推荐
瑶山4 小时前
Spring Cloud微服务搭建五、集成负载均衡,远程调用,熔断降级
spring cloud·微服务·负载均衡·远程调用·熔断降级
主机哥哥15 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
大方子18 小时前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha19 小时前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络20 小时前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd1 天前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你1 天前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
枷锁—sha2 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
liann1192 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20252 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信