010302-oss

06-01 1022阅读

文章目录

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

                  1.3 OSS 的优势

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

                  1.4 典型使用场景

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

                  1.5 如何接入 OSS?

                  以阿里云 OSS 为例:

                  1. 创建存储桶(Bucket)

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

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

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

                  1.6 注意事项

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

                    1.7 cloudreve实战演示

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

                      第一步:启动应用,如下图所示,010302-oss

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

                      第二步:管理面板配置OSS存储策略,如下图所示,010302-oss

                      第四步:上传文件测试,成功长传如图所示,010302-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. 作用方向
                            • 正向代理:客户端主动通过代理访问外部资源(代理代表客户端)。
                            • 反向代理:服务端通过代理接收请求并分发(代理代表服务端)。
                            • 隐藏对象
                              • 正向代理:隐藏客户端身份。
                              • 反向代理:隐藏服务端身份。
                              • 典型应用
                                • 正向代理:科学上网、内网访问外网。
                                • 反向代理:负载均衡、CDN、API 网关。

                          2.2 演示

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

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

                          配置文件如下所示:

                          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;
                          }
                          

                          效果如下图所示:

                          010302-oss

                          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)。
                            • 高性能,适用于低延迟场景(如游戏、视频流)。
                            • 七层负载均衡(应用层,HTTP/HTTPS)
                              • 解析应用层协议,支持基于URL、Cookie的路由(如Nginx、HAProxy)。
                              • 功能强大,支持SSL终止、内容压缩、缓存等。

                          3.4 典型负载均衡方案

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

                          3.5 关键实践要点

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

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码