天天看點

基于CentOS的ECS執行個體實作OSS反向代理

基于CentOS的ECS執行個體實作OSS反向代理

鏡像下載下傳、域名解析、時間同步請點選

阿裡巴巴開源鏡像站

一、背景資訊

阿裡雲OSS通過Restful API方式對外提供服務。最終使用者通過OSS預設域名或者綁定的自定義域名方式通路,但是在某些場景下,使用者需要通過固定的IP位址通路OSS:

  • 某些企業由于安全機制,需要在出口防火牆配置政策,以限制内部員工和業務系統隻能通路指定的公網IP,但是OSS的Bucket通路IP會随機變換,導緻需要經常修改防火牆政策。
  • 金融雲環境下,因金融雲網絡架構限制,金融雲内網類型的Bucket隻能在金融雲内部通路,不支援在網際網路上直接通路金融雲内網類型Bucket。

以上問題可以通過在ECS執行個體上搭建反向代理的方式通路OSS。

基于CentOS的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資源。

基于CentOS的ECS執行個體實作OSS反向代理
提供全面,高效和穩定的鏡像下載下傳服務。釘釘搜尋 ' 21746399 ‘ 加入鏡像站官方使用者交流群。”

繼續閱讀