背景資訊
阿裡雲OSS為使用者提供OSS預設域名或者綁定的自定義域名方式通路,但是在某些場景下,使用者需要通過固定的IP位址通路OSS:
- 某些企業由于安全機制,需要在出口防火牆配置政策,以限制内部員工和業務系統隻能通路指定的公網IP,但是OSS的Bucket通路IP會随機變換,導緻需要經常修改防火牆政策。
- 金融雲環境下,因金融雲網絡架構限制,金融雲的Bucket隻能在金融雲内部通路。
以上問題可以通過在ECS執行個體上搭建反向代理的方式通路OSS。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SMiNTY3YmYmJGZkJzYiBTYmRjY0I2N1ITMllzY5EGNz8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
配置步驟
- 建立一個和指定Bucket相同地域的Windows Server系統的ECS執行個體并登入。本文示範系統為Windows Server 2019資料中心版64位中文版系統,建立和登入過程請參見 Windows系統執行個體快速入門 。
- 下載下傳Nginx并解壓。本文以Nginx-1.19.2版本為例,下載下傳位址請參見 Nginx
- 修改配置檔案。
-
- 進入conf檔案夾,使用記事本打開nginx.conf檔案。
- 修改配置檔案内容。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
server {
listen 80;
server_name 47.**.**.43;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
proxy_pass http://bucketname.oss-cn-hangzhou-internal.aliyuncs.com;
#proxy_set_header Host $host;
}
}
}
-
-
- server_name:對外提供反向代理服務的IP,即ECS執行個體的外網位址。
- proxy_pass:填寫跳轉的域名。
-
-
-
-
- 當ECS執行個體與Bucket在同一地域時,填寫目标Bucket的内網通路域名。通路域名介紹請參見 OSS通路域名使用規則
- 當ECS執行個體與Bucket不在同一地域時,填寫目标Bucket的外網通路域名。
- 因OSS的安全設定,當使用預設域名通過浏覽器通路OSS中的圖檔或網頁檔案時,會直接下載下傳。是以,若您的使用者需通過浏覽器預覽Bucket中的圖檔或網頁檔案,需為Bucket綁定自定義域名,并在此項中添加已綁定的域名。綁定自定義域名操作請參見 綁定自定義域名
-
-
-
-
- proxy_set_header Host $host:添加此項時,Nginx會在向OSS請求的時候,将host替換為ECS的通路位址。遇到以下情況時,您需要添加此項。
-
注意
- 本文為示範環境,實際環境中,為了您的資料安全,建議配置HTTPS子產品。
- 上述配置方式隻能代理通路一個Bucket。
- 傳回Nginx主程式檔案夾,輕按兩下nginx.exe啟動Nginx。
- 開放ECS執行個體的TCP 80端口。Nginx預設使用TCP 80端口,是以需在ECS的安全組配置中,允許使用者通路TCP 80端口。配置方式請參見 添加安全組規則
- 使用ECS外網位址加檔案通路路徑通路OSS資源。
【OSS】基于Windows的ECS執行個體實作OSS反向代理