日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于Ubuntu的ECS實例實現OSS反向代理

阿里云OSS的存儲空間(Bucket)訪問地址會隨機變換,您可以通過在ECS實例上配置OSS的反向代理,實現通過固定IP地址訪問OSS的存儲空間。

背景信息

阿里云OSS通過Restful API方式對外提供服務。最終用戶通過OSS默認域名或者綁定的自定義域名方式訪問,但是在某些場景下,用戶需要通過固定的IP地址訪問OSS:

  • 某些企業由于安全機制,需要在出口防火墻配置策略,以限制內部員工和業務系統只能訪問指定的公網IP,但是OSSBucket訪問IP會隨機變換,導致需要經常修改防火墻策略。

  • 金融云環境下,因金融云網絡架構限制,金融云內網類型的Bucket只能在金融云內部訪問,不支持在互聯網上直接訪問金融云內網類型Bucket。

針對以上問題,您可以通過在ECS實例上搭建反向代理的方式訪問OSS。

操作步驟

  1. 創建一個ECS實例。

    本文以和對應Bucket相同地域的Ubuntu 18.04 64位系統的ECS實例為例。

    如何創建ECS實例,請參見選購ECS實例

  2. 連接ECS實例。

    如何連接ECS實例,請參見 連接ECS實例

  3. 執行以下命令更新apt源。

    sudo apt-get update
  4. 執行以下命令安裝Nginx。

    sudo apt-get install nginx
    Nginx文件的默認安裝位置如下。
    目錄 說明
    /usr/sbin/nginx 存放主程序
    /etc/nginx 存放配置文件
    /usr/share/nginx 存放靜態文件
    /var/log/nginx 存放日志
  5. 執行以下命令打開Nginx配置文件nginx.conf

    sudo vi /etc/nginx/nginx.conf
  6. 參考以下說明修改nginx.conf文件中的HTTP模塊。

    重要
    • 本文僅提供演示環境。考慮到您的數據安全,強烈建議您在實際使用環境中配置HTTPS模塊。如何配置,請參見NginxTengine服務器配置SSL證書

    • 以下配置方式只能代理訪問一個Bucket。

    server {
            listen 80;
            server_name 47.**.**.73; 
    
            location / {
                proxy_pass http://bucketname.oss-cn-beijing-internal.aliyuncs.com;            
                proxy_http_version 1.1;
                proxy_set_header Host $http_host;
                proxy_connect_timeout 15s;
                proxy_read_timeout 15s;
                proxy_send_timeout 15s;
                proxy_set_header Connection "";
                proxy_buffering off;
                proxy_request_buffering off;
         }  
    }

    參數

    說明

    server_name

    對外提供反向代理服務的IP,即ECS實例的外網地址。

    proxy_pass

    跳轉的域名。

    • ECS實例與Bucket在同一地域時:填寫目標Bucket的內網訪問域名。關于內網訪問域名的更多信息,請參見通過內網訪問OSS

    • ECS實例與Bucket不在同一地域時:填寫目標Bucket的外網訪問域名。關于外網訪問域名的更多信息,請參見通過外網訪問OSS

    • 您的用戶需通過瀏覽器預覽Bucket中的圖片或網頁文件:因OSS的安全設置,當使用默認域名通過瀏覽器訪問OSS中的圖片或網頁文件時,會直接下載。所以,如果您的用戶需通過瀏覽器預覽Bucket中的圖片或網頁文件,需為Bucket綁定自定義域名,并在此項中添加已綁定的域名。如何綁定自定義域名,請參見綁定自定義域名

    proxy_set_header Host

    添加此項時,Nginx會在向OSS請求的時候,將$host替換為ECS的訪問地址。

    遇到以下情況時,您需要添加此項。

    • 遇到簽名錯誤問題。

    • 如果您的域名已解析到ECS實例的外網上,且您的用戶需要通過瀏覽器預覽Bucket中的圖片或網頁文件。您可以將您的域名綁定到ECS實例代理的Bucket上,不配置CNAME。在該情況下,proxy_pass項可直接配置Bucket的內網或外網訪問地址。如何綁定自定義域名,請參見綁定自定義域名

    說明

    該選項針對自定義域名請求到代理服務器的場景。如果您使用IP地址直接請求訪問代理服務器, 您需要在nginx.conf文件中注釋proxy_set_header Host $host

    proxy_connect_timeout

    設置與后端服務器(如 OSS)的連接超時時間。此超時配置決定了 Nginx 在建立與后端服務器的連接時,最長等待的時間。如果超時,Nginx 將返回錯誤響應。

    proxy_read_timeout

    控制 Nginx 從后端服務器讀取響應數據的超時時間。如果在此時間內未能從后端服務器讀取到數據,Nginx 將返回錯誤響應。這對于處理可能響應時間較長的請求非常重要。

    proxy_send_timeout

    設置 Nginx 向后端服務器發送請求數據的超時時間。此參數確保 Nginx 在等待請求數據發送到后端服務器期間保持連接,直到超時或連接顯式關閉。

    proxy_set_header Connection

    設置代理請求頭中的 Connection 字段為空字符串,表示在代理請求時,Nginx 不會添加 Connection 頭部。這樣可以避免 HTTP/1.1 持久連接問題,確保與后端服務器的連接處理正確。

    proxy_buffering

    控制Nginx是否緩存從后端服務器接收到的數據。設置為off意味著Nginx將立即轉發數據給客戶端,而不會進行緩存,這可以降低延遲,但也可能增加帶寬消耗。

    proxy_request_buffering

    決定 Nginx 是否在將請求體轉發給后端服務器之前等待整個請求體完全接收。設置為off表示Nginx將開始接收數據后立即轉發,無需等待整個請求體接收完成,這有利于實時性要求較高的應用場景。

  7. 執行以下命令進入Nginx主程序文件夾。

    cd /usr/sbin/
  8. 執行以下命令啟動Nginx。

    sudo ./nginx
  9. 開放ECS實例的TCP 80端口。

    Nginx默認使用80端口,您需在ECS的安全組配置中,允許用戶訪問TCP 80端口。

    如何配置,請參見添加安全組規則

  10. 測試使用ECS外網地址加文件訪問路徑訪問OSS資源。

    本文跳轉的域名以OSS默認域名為例。使用本地瀏覽器訪問時,OSS資源默認會被下載。如果您需要實現訪問OSS資源時預覽,您在配置proxy_pass時需要使用自定義域名。

    說明

    如果訪問的文件讀寫權限為私有,文件URL中還需要包含簽名信息。詳情請參見簽名版本1

相關文檔