鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站
一、背景信息
阿里雲OSS通過Restful API方式對外提供服務。最終用戶通過OSS默認域名或者綁定的自定義域名方式訪問,但是在某些場景下,用戶需要通過固定的IP地址訪問OSS:
- 某些企業由於安全機制,需要在出口防火牆配置策略,以限制內部員工和業務系統只能訪問指定的公網IP,但是OSS的Bucket訪問IP會隨機變換,導致需要經常修改防火牆策略。
- 金融雲環境下,因金融雲網絡架構限制,金融雲內網類型的Bucket只能在金融雲內部訪問,不支持在互聯網上直接訪問金融雲內網類型Bucket。
以上問題可以通過在ECS實例上搭建反向代理的方式訪問OSS。
二、配置步驟
1、創建一個和對應Bucket相同地域的CentOS系統的ECS實例。本文演示系統為CentOS 7.6 64位系統。
創建過程請參見創建ECS實例。
2、使用root用戶登錄ECS實例並安裝Nginx。
root@test:~# yum install -y nginx
說明 Nginx默認安裝位置:
/usr/sbin/nginx 主程序
/etc/nginx 存放配置文件
/usr/share/nginx 存放靜態文件
/var/log/nginx 存放日誌
3、打開Nginx配置文件。
root@test:~# vi /etc/nginx/nginx.conf
4、在config文件中的http模塊中,修改配置如下。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 47.**.**.43;
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_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的訪問地址。遇到以下情況時,您需要添加此項。
- 遇到簽名錯誤問題。
- 如果您的域名已解析到ECS實例的外網上,且您的用戶需要通過瀏覽器預覽Bucket中的圖片或網頁文件。您可以將您的域名綁定到ECS實例代理的Bucket上,不配置CNAME。這種情況下,proxy_pass項可直接配置Bucket的內網或外網訪問地址。綁定自定義域名操作請參見綁定自定義域名。
說明 本文為演示環境,實際環境中,為了您的數據安全,建議配置https模塊,配置方法請參見反向代理配置。
5、進入Nginx主程序文件夾,啟動Nginx。
root@test:~# cd /usr/sbin/
root@test:~# ./nginx
6、測試使用ECS外網地址加文件訪問路徑訪問OSS資源。
“ 阿里巴巴開源鏡像站 提供全面,高效和穩定的鏡像下載服務。釘釘搜索 ' 21746399 ‘ 加入鏡像站官方用戶交流群。”