1.目前存在的問題
- 無法通過固定的IP方式通路OSS:阿裡雲OSS通過Restful API方式對外提供服務。最終使用者通過OSS預設域名或者綁定的自定義域名方式通路(例如: https://your_bucketname.oss-cn-hangzhou.aliyuncs.com/your_object ) 。您可以通過域名解析的方式擷取某個Bucket域名對應的臨時IP,但是由于阿裡雲OSS自身安全機制,Bucket域名對應的IP是會随機發生變化的。是以,您無法擷取某個Bucket對應的長期有效IP位址。而某些企業由于安全機制,需要在出口防火牆配置政策,以限制内部員工和業務系統隻能通路指定的公網IP。
- 網際網路使用者無法直接通路金融雲OSS:由于金融雲網絡架構限制,金融雲内網類型的Bucket隻能在金融雲内部通路。不支援在網際網路上直接通路金融雲内網類型Bucket;
2.基于ECS搭建反向代理方式通路OSS
針對如上問題,我們采用了“基于ECS搭建反向代理方式通路OSS”。

上圖是基于“ECS搭建反向代理”的邏輯示意圖,其主要實作機制如下:
- 在Bucket所在的Region建立ECS;
- 在同Region建立SLB(可選)。為了提高ECS的可用性,可以搭建多台ECS作為叢集對外提供服務(可選);
- 在ECS上部署Nginx或者Apache作為反向代理服務;
3.配置操作步驟
3.1示範前提
1. ECS *1;
a) 所在Reigon: cn-shanghai
b) 作業系統版本: Ubuntu 16.04(64位);
2. Bucket *1;
a) 所在Reigon: cn-hongkong
b) Bucket名稱: test-hongkong-2025
3. 此次配置僅做示範說明。是以,沒有配置SLB;
4. 反向代理服務:
a) Nginx
3.2在ECS上安裝Nginx
3.2.1安裝Nginx
sudo apt-get install nginx
預設安裝位置:
/usr/sbin/nginx 主程式
/etc/nginx 存放配置檔案
/usr/share/nginx 存放靜态檔案
/var/log/nginx 存放日志
3.2.2配置Nginx
1.配置Nginx:
sudo vi /etc/nginx/nginx.conf
2.請在config檔案中的HTTP子產品添加如下内容:
upstream mysvr {
server 127.0.0.1; #default_server1;
server 101.132.39.231; #default_server2;
server 172.19.158.170; #default_server3;
}
server {
listen 80;
server_name 101.132.39.231; #對外提供反向代理服務的IP;
location / {
index http://test-beijing-2019.oss-cn-beijing.aliyuncs.com/index.html; #可選;
proxy_pass http://test-hongkong-2025.oss-cn-hongkong.aliyuncs.com; #如果主機與Bucket不在同一個區域,需使用外網;
}
}
3.2.3重新開機Nginx服務
1.啟動Nginx服務:
sudo nginx –t
2.重新開機nginx服務:
nginx -s reload
3.4測試
如下,我們測試通路test-hongkong-2025這個Bucket下某個檔案:
root@iZuf698rtvi9j9uskgv84tZ:/etc/nginx# curl http://101.132.39.231/011.txt
002
003
004
005
006
007
008
009
如上所示,基于ECS搭建反向代理服務的方式,能夠對外提供固定IP的通路方式。