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

如何基于CentOS的ECS實(shí)例實(shí)現(xiàn)OSS反向代理

更新時(shí)間:
一鍵部署
我的部署

阿里云OSS的存儲(chǔ)空間(Bucket)訪問(wèn)地址會(huì)隨機(jī)變換,您可以通過(guò)在ECS實(shí)例上配置OSS的反向代理,實(shí)現(xiàn)通過(guò)固定IP地址訪問(wèn)OSS的存儲(chǔ)空間。

背景信息

阿里云OSS通過(guò)Restful API方式對(duì)外提供服務(wù)。最終用戶通過(guò)OSS默認(rèn)域名或者綁定的自定義域名方式訪問(wèn),但是在某些場(chǎng)景下,用戶需要通過(guò)固定的IP地址訪問(wèn)OSS:

  • 某些企業(yè)由于安全機(jī)制,需要在出口防火墻配置策略,以限制內(nèi)部員工和業(yè)務(wù)系統(tǒng)只能訪問(wèn)指定的公網(wǎng)IP,但是OSSBucket訪問(wèn)IP會(huì)隨機(jī)變換,導(dǎo)致需要經(jīng)常修改防火墻策略。

  • 金融云環(huán)境下,因金融云網(wǎng)絡(luò)架構(gòu)限制,金融云內(nèi)網(wǎng)類型的Bucket只能在金融云內(nèi)部訪問(wèn),不支持在互聯(lián)網(wǎng)上直接訪問(wèn)金融云內(nèi)網(wǎng)類型Bucket。

針對(duì)以上問(wèn)題,您可以通過(guò)在ECS實(shí)例上搭建反向代理的方式訪問(wèn)OSS。

操作步驟

說(shuō)明

您可以點(diǎn)擊一鍵部署通過(guò)ROS快速基于CentOSECS實(shí)例實(shí)現(xiàn)OSS反向代理,無(wú)需手動(dòng)執(zhí)行以下操作步驟。

  1. 創(chuàng)建一個(gè)ECS實(shí)例。

    本文以和Bucket相同地域的CentOS 7.6 64位系統(tǒng)的ECS實(shí)例為例。

    如何創(chuàng)建ECS實(shí)例,請(qǐng)參見選購(gòu)ECS實(shí)例。

  2. 連接ECS實(shí)例。

    如何連接ECS實(shí)例,請(qǐng)參見 連接ECS實(shí)例。

  3. 執(zhí)行以下命令安裝Nginx。

    sudo yum install -y nginx
    Nginx文件的默認(rèn)安裝位置如下。
    目錄 說(shuō)明
    /usr/sbin/nginx 存放主程序
    /etc/nginx 存放配置文件
    /usr/share/nginx 存放靜態(tài)文件
    /var/log/nginx 存放日志
  4. 執(zhí)行以下命令打開Nginx配置文件nginx.conf。

    sudo vi /etc/nginx/nginx.conf
  5. 參考以下說(shuō)明修改nginx.conf文件中的HTTP模塊。

    重要
    • 本文僅提供演示環(huán)境??紤]到您的數(shù)據(jù)安全,強(qiáng)烈建議您在實(shí)際使用環(huán)境中配置HTTPS模塊。如何配置,請(qǐng)參見NginxTengine服務(wù)器配置SSL證書。

    • 以下配置方式只能代理訪問(wèn)一個(gè)Bucket。

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        location / {
            proxy_pass https://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;
        }
    }

    參數(shù)

    說(shuō)明

    server_name

    對(duì)外提供反向代理服務(wù)的IP,即ECS實(shí)例的外網(wǎng)地址。

    proxy_pass

    跳轉(zhuǎn)的域名。

    • 當(dāng)ECS實(shí)例與Bucket在同一地域時(shí):填寫目標(biāo)Bucket的內(nèi)網(wǎng)訪問(wèn)域名。關(guān)于內(nèi)網(wǎng)訪問(wèn)域名的更多信息,請(qǐng)參見通過(guò)內(nèi)網(wǎng)訪問(wèn)OSS。

    • 當(dāng)ECS實(shí)例與Bucket不在同一地域時(shí):填寫目標(biāo)Bucket的外網(wǎng)訪問(wèn)域名。關(guān)于外網(wǎng)訪問(wèn)域名的更多信息,請(qǐng)參見通過(guò)外網(wǎng)訪問(wèn)OSS

    • 您的用戶需通過(guò)瀏覽器預(yù)覽Bucket中的圖片或網(wǎng)頁(yè)文件:因OSS的安全設(shè)置,當(dāng)使用默認(rèn)域名通過(guò)瀏覽器訪問(wèn)OSS中的圖片或網(wǎng)頁(yè)文件時(shí),會(huì)直接下載。所以,如果您的用戶需通過(guò)瀏覽器預(yù)覽Bucket中的圖片或網(wǎng)頁(yè)文件,需為Bucket綁定自定義域名,并在此項(xiàng)中添加已綁定的域名。如何綁定自定義域名,請(qǐng)參見綁定自定義域名。

    proxy_set_header Host

    添加此項(xiàng)時(shí),Nginx會(huì)在向OSS請(qǐng)求的時(shí)候,將$host替換為ECS的訪問(wèn)地址。

    遇到以下情況時(shí),您需要添加此項(xiàng)。

    • 遇到簽名錯(cuò)誤問(wèn)題。

    • 如果您的域名已解析到ECS實(shí)例的外網(wǎng)上,且您的用戶需要通過(guò)瀏覽器預(yù)覽Bucket中的圖片或網(wǎng)頁(yè)文件。您可以將您的域名綁定到ECS實(shí)例代理的Bucket上,不配置CNAME。在該情況下,proxy_pass項(xiàng)可直接配置Bucket的內(nèi)網(wǎng)或外網(wǎng)訪問(wèn)地址。如何綁定自定義域名,請(qǐng)參見綁定自定義域名。

    說(shuō)明

    該選項(xiàng)針對(duì)自定義域名請(qǐng)求到代理服務(wù)器的場(chǎng)景。如果您使用IP地址直接請(qǐng)求訪問(wèn)代理服務(wù)器, 您需要在nginx.conf文件中注釋proxy_set_header Host $host

    proxy_connect_timeout

    設(shè)置與后端服務(wù)器(如 OSS)的連接超時(shí)時(shí)間。此超時(shí)配置決定了 Nginx 在建立與后端服務(wù)器的連接時(shí),最長(zhǎng)等待的時(shí)間。如果超時(shí),Nginx 將返回錯(cuò)誤響應(yīng)。

    proxy_read_timeout

    控制 Nginx 從后端服務(wù)器讀取響應(yīng)數(shù)據(jù)的超時(shí)時(shí)間。如果在此時(shí)間內(nèi)未能從后端服務(wù)器讀取到數(shù)據(jù),Nginx 將返回錯(cuò)誤響應(yīng)。這對(duì)于處理可能響應(yīng)時(shí)間較長(zhǎng)的請(qǐng)求非常重要。

    proxy_send_timeout

    設(shè)置 Nginx 向后端服務(wù)器發(fā)送請(qǐng)求數(shù)據(jù)的超時(shí)時(shí)間。此參數(shù)確保 Nginx 在等待請(qǐng)求數(shù)據(jù)發(fā)送到后端服務(wù)器期間保持連接,直到超時(shí)或連接顯式關(guān)閉。

    proxy_set_header Connection

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

    proxy_buffering

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

    proxy_request_buffering

    決定 Nginx 是否在將請(qǐng)求體轉(zhuǎn)發(fā)給后端服務(wù)器之前等待整個(gè)請(qǐng)求體完全接收。設(shè)置為off表示Nginx將開始接收數(shù)據(jù)后立即轉(zhuǎn)發(fā),無(wú)需等待整個(gè)請(qǐng)求體接收完成,這有利于實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)景。

  6. 執(zhí)行以下命令進(jìn)入Nginx主程序文件夾。

    cd /usr/sbin/
  7. 執(zhí)行以下命令啟動(dòng)Nginx。

    sudo ./nginx
  8. 開放ECS實(shí)例的TCP 80端口。

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

    如何配置,請(qǐng)參見添加安全組規(guī)則。

  9. 測(cè)試使用ECS外網(wǎng)地址加文件訪問(wèn)路徑訪問(wèn)OSS資源。

    本文跳轉(zhuǎn)的域名以OSS默認(rèn)域名為例。使用本地瀏覽器訪問(wèn)時(shí),OSS資源默認(rèn)會(huì)被下載。如果您需要實(shí)現(xiàn)訪問(wèn)OSS資源時(shí)預(yù)覽,您在配置proxy_pass時(shí)需要使用自定義域名。

    說(shuō)明

    如果訪問(wèn)的文件讀寫權(quán)限為私有,文件URL中還需要包含簽名信息。詳情請(qǐng)參見簽名版本1。

相關(guān)文檔