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

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

### 回答1: code-oss_1.45.0-1586135971_arm64.deb 是一个软件包文件的名称。 首先,"code-oss" 代表的是一个代码编辑器,基于开源项目 Visual Studio Code (VS Code) 开发而来的一个版本。它是一个功能强大且灵活的代码编辑器,广泛用于开发各种程序语言,包括但不限于 C, C++, Java, Python, JavaScript 等。 接下来,"1.45.0-1586135971" 表示的是该软件包的版本号。版本号通常由主版本号、次版本号、修订号和构建号组成。主版本号和次版本号表示了软件包的大的更新和功能改进;修订号表示软件包的小的修复和调整;构建号是指每次构建软件包时生成的唯一标识符。在这个例子中,1.45.0-1586135971 是软件包的版本号。 最后,"arm64.deb" 表示是一个为 arm64 架构设计的 Debian 格式的软件包文件。arm64 是一种基于 ARM 架构的64位处理器架构,常用于移动设备和嵌入式系统。而 .deb 是 Debian 系统中的一种常用软件包格式,适用于 Debian、Ubuntu 等基于 Debian 的 Linux 发行版。 所以,code-oss_1.45.0-1586135971_arm64.deb 是一个基于 VS Code 的代码编辑器软件包的名称,适用于 arm64 架构的 Debian 系统。它提供了一种方便的方式来安装和使用这个代码编辑器,以满足开发人员对于代码编写和调试的需求。 ### 回答2: code-oss_1.45.0-1586135971_arm64.deb 是一个 Debian 软件包文件,用于安装 Visual Studio Code (VSCode) 的开源版本。它适用于 ARM64 架构的计算机,这是一种 64 位 ARM 处理器的架构。 Visual Studio Code 是一款流行的源代码编辑器,开发者可以使用它编写、调试和测试多种编程语言。它具有丰富的插件生态系统,使用户可以根据自己的需求扩展和定制编辑器功能。 code-oss_1.45.0-1586135971_arm64.deb 是一个特定版本的软件包,由数字和文字组成的版本号 "1.45.0" 表示软件的主要版本,而 "1586135971" 表示软件的编译时间戳(Unix 时间戳)。ARM64.deb 文件是一种适用于基于 ARM64 架构的 Debian 操作系统的软件包格式。 要安装该软件包,可以使用 Debian 系统的包管理器,如 apt-get,或使用 dpkg 命令手动进行安装。具体的安装步骤会根据不同的操作系统和软件包管理器有所区别。 希望以上信息对您有所帮助,如果有其他问题,请随时追问! ### 回答3: code-oss_1.45.0-1586135971_arm64.deb 是一个Debian软件包,用于在arm64架构上安装并运行Visual Studio Code的开源版本(Code-OSS)。该软件包的版本号为1.45.0,构建时的时间戳为1586135971。 Visual Studio Code是一款功能强大的代码编辑器,由Microsoft开发并于2015年首次发布。Code-OSS是其开源版本,提供了与原版Visual Studio Code相同的基本功能和界面。arm64表示该软件包适用于64位ARM架构的处理器。 要安装这个软件包,你需要下载对应的.deb文件,并在arm64架构的设备上进行安装。安装完成后,你就可以使用Visual Studio Code来编辑和开发代码,包括但不限于编写、调试和运行各种编程语言的程序。 Visual Studio Code以其强大的扩展生态系统而闻名,你可以在安装完Code-OSS后,通过安装各种插件来扩展其功能,满足你的具体需求。 总之,code-oss_1.45.0-1586135971_arm64.deb 是一款可以在64位ARM架构上运行的Visual Studio Code开源版本的软件包。它为开发者提供了一个强大的代码编辑器,可通过插件扩展来满足不同的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值