010302-oss_反向代理_負載均衡-web擴展2-基礎入門-網絡安全

文章目錄

    • 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.pswp.cn/pingmian/79196.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79196.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79196.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【 Node.js】 Node.js安裝

下載 下載 | Node.js 中文網https://nodejs.cn/download/ 安裝 雙擊安裝包 點擊Next 勾選使用許可協議&#xff0c;點擊Next 選擇安裝位置 點擊Next 點擊Next 點擊Install 點擊Finish 完成安裝 添加環境變量 編輯【系統變量】下的變量【Path】添加Node.js的安裝路徑--如果…

Python基本語法(自定義函數)

自定義函數 Python語言沒有子程序&#xff0c;只有自定義函數&#xff0c;目的是方便我們重復使用相同的一 段程序。將常用的代碼塊定義為一個函數&#xff0c;以后想實現相同的操作時&#xff0c;只要調用函數名就可以了&#xff0c;而不需要重復輸入所有的語句。 函數的定義…

OpenGL-ES 學習(11) ---- EGL

目錄 EGL 介紹EGL 類型和初始化EGL初始化方法獲取 eglDisplay初始化 EGL選擇 Config構造 Surface構造 Context開始繪制 EGL Demo EGL 介紹 OpenGL-ES 是一個操作GPU的圖像API標準&#xff0c;它通過驅動向 GPU 發送相關圖形指令&#xff0c;控制圖形渲染管線狀態機的運行狀態&…

極簡5G專網解決方案

極簡5G專網解決方案 利用便攜式即插即用私有 5G 網絡提升您的智能創新。為您的企業提供無縫、安全且可擴展的 5G 解決方案。 提供極簡5G專網解決方案 Mantiswave Network Private Limited 提供全面的 5G 專用網絡解決方案&#xff0c;以滿足您企業的獨特需求。我們創新的“…

html:table表格

表格代碼示例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!-- 標準表格。 --><table border"5"cellspacing&qu…

tkinter 電子時鐘 實現時間日期 可實現透明

以下是一個使用Tkinter模塊創建一個簡單的電子時鐘并顯示時間和日期的示例代碼&#xff1a; import tkinter as tk import time# 創建主窗口 root tk.Tk() root.overrideredirect(True) # 隱藏標題欄 root.attributes(-alpha, 0.7) # 設置透明度# 顯示時間的標簽 time_labe…

【報錯問題】 macOS 的安全策略(Gatekeeper)阻止了未簽名的原生模塊(bcrypt_lib.node)加載

這個錯誤是由于 macOS 的安全策略&#xff08;Gatekeeper&#xff09;阻止了未簽名的原生模塊&#xff08;bcrypt_lib.node&#xff09;加載 導致的。以下是具體解決方案&#xff1a; 1. 臨時允許加載未簽名模塊&#xff08;推薦先嘗試&#xff09; 在終端運行以下命令&#x…

AI實現制作logo的網站添加可選顏色模板

1.效果圖 LogoPalette.jsx import React, {useState} from react import HeadingDescription from ./HeadingDescription import Lookup from /app/_data/Lookup import Colors from /app/_data/Colors function LogoPalette({onHandleInputChange}) { const [selectOptio…

云原生后端架構的挑戰與應對策略

??個人主頁??:慌ZHANG-CSDN博客 ????期待您的關注 ???? 隨著云計算、容器化以及微服務等技術的快速發展,云原生架構已經成為現代軟件開發和運維的主流趨勢。企業通過構建云原生后端系統,能夠實現靈活的資源管理、快速的應用迭代和高效的系統擴展。然而,盡管云原…

【C++】模板為什么要extern?

模板為什么要extern&#xff1f; 在 C 中&#xff0c;多個編譯單元使用同一個模板時&#xff0c;是否可以不使用 extern 取決于模板的實例化方式&#xff08;隱式或顯式&#xff09;&#xff0c;以及你對編譯時間和二進制體積的容忍度。 1. 隱式實例化&#xff1a;可以不用 ex…

中小企業MES系統數據庫設計

版本&#xff1a;V1.0 日期&#xff1a;2025年5月2日 一、數據庫架構概覽 1.1 數據庫選型 數據類型數據庫類型技術選型用途時序數據&#xff08;傳感器讀數&#xff09;時序數據庫TimescaleDB存儲設備實時監控數據結構化業務數據關系型數據庫PostgreSQL工單、質量、設備等核心…

VUE篇之樹形特殊篇

根節點是level:1, level3及其子節點有關聯&#xff0c;但是和level2和他下面的子節點沒有關聯 思路&#xff1a;采用守護風琴效果&#xff0c;遍歷出level1和level2級節點&#xff0c;后面level3的節點&#xff0c;采用樹形結構進行關聯 <template><div :class"…

洛圣電玩系列部署實錄:一次自己從頭跑通的搭建過程

寫這篇文章不是為了“教大家怎么一步步安裝”&#xff0c;而是想把我自己完整跑通洛圣電玩整個平臺的經歷復盤下來。因為哪怕你找到了所謂的全套源碼資源&#xff0c;如果沒人告訴你這些資源之間是怎么連起來的&#xff0c;你依舊是一臉懵逼。 我拿到的是什么版本&#xff1f; …

騰訊云web服務器配置步驟是什么?web服務器有什么用途?

騰訊云web服務器配置步驟是什么?web服務器有什么用途&#xff1f; Web服務器配置步驟&#xff08;以常見環境為例&#xff09; 1. 安裝Web服務器軟件 Linux系統&#xff08;如Ubuntu&#xff09; Apache: sudo apt update sudo apt install apache2 Nginx: sudo apt install…

第37課 繪制原理圖——放置離頁連接符

什么是離頁連接符&#xff1f; 前邊我們介紹了網絡標簽&#xff08;Net Lable&#xff09;&#xff0c;可以讓兩根導線“隔空相連”&#xff0c;使原理圖更加清爽簡潔。 但是網絡標簽的使用也具有一定的局限性&#xff0c;對于兩張不同Sheet上的導線&#xff0c;網絡標簽就不…

Win下的Kafka安裝配置

一、準備工作&#xff08;可以不做&#xff0c;畢竟最新版kafka也不需要zk&#xff09; 1、Windows下安裝Zookeeper &#xff08;1&#xff09;官網下載Zookeeper 官網下載地址 &#xff08;2&#xff09;解壓Zookeeper安裝包到指定目錄C:\DevelopApp\zookeeper\apache-zoo…

前端Vue3 + 后端Spring Boot,前端取消請求后端處理邏輯分析

在 Vue3 Spring Boot 的技術棧下&#xff0c;前端取消請求后&#xff0c;后端是否繼續執行業務邏輯的答案仍然是 取決于請求處理的階段 和 Spring Boot 的實現方式。以下是結合具體技術的詳細分析&#xff1a; 1. 請求未到達 Spring Boot 場景&#xff1a;前端通過 AbortContr…

【藍橋杯省賽真題58】Scratch畫臺扇 藍橋杯scratch圖形化編程 中小學生藍橋杯省賽真題講解

目錄 scratch畫臺扇 一、題目要求 編程實現 二、案例分析 1、角色分析 2、背景分析 3、前期準備 三、解題思路 四、程序編寫 五、考點分析 六、推薦資料 1、scratch資料 2、python資料 3、C++資料 scratch畫臺扇 第十五屆青少年藍橋杯scratch編程省賽真題解析 …

GPT-4o 圖像生成與八個示例指南

什么是GPT-4o圖像生成&#xff1f; 簡單來說&#xff0c;GPT-4o圖像生成是集成在ChatGPT內部的一項功能。用戶可以直接在對話中&#xff0c;通過文本描述&#xff08;Prompt&#xff09;來創建、編輯和調整圖像。這與之前的圖像生成工具相比&#xff0c;體驗更流暢、交互性更強…

TCP 連接的“三次握手”與“四次揮手”

目錄 什么是“三次握手” “四次揮手”&#xff1f; 三個標記位 三次握手 四次揮手 為什么握手三次&#xff0c;揮手需要四次&#xff1f; 為什么要等2MSL&#xff1f; 什么是“三次握手” “四次揮手”&#xff1f; 三次握手&#xff08;Three-way Handshake&#xf…