1. 本機環境
- Ubuntu 16.04 (64位)
- Apache2 2.4.18
2. 什么是對象存儲 OSS
阿里云對象存儲服務(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲服務。
你可以在任何應用、任何時間、任何地點存儲和訪問任意類型的數據。
其優點在于可靠性高,相對于 ECS 服務器的數據盤來說,費用較低,適合存儲圖片、視頻等文件。
費用對比:
在 ECS 實例中額外掛載一塊 500GB 數據盤需要花費 1785 元人民幣。
購買一年 OSS 對象存儲,500GB 空間僅需要 486 元人民幣。
3. OSS 地理區域限制
說明:
- 同地域的 ECS 可以通過內網訪問 OSS。
- 跨賬戶的 ECS 和 OSS 可以內網互連。
- 不同地域的 ECS 與 OSS 無法通過內網訪問。
例如:
位于深圳的 ECS 與同處于深圳的 OSS,可以通過內網直接訪問,不收取流量費。
但深圳的 ECS 與北京的 OSS,只能通過外網訪問,需要按量付費。
我們在購買 OSS 資源包時需要注意機房的地理位置。
4. 購買 OSS 資源包

紅框: 資源包類型選擇 標準型存儲包
。
綠框: 地域選擇你 ECS 所在地,我的是華南1區(深圳)
。
選擇你需要的容量,支付費用即可。
5. 獲取 OSS 內網地址
在 OSS 控制臺中創建一個 Bucket
。

紅框: 新建一個 Bucket
。
綠框: 你的 Bucket
列表。

在 Bucket
列表中找到剛剛創建的,你會看到下圖所示的幾個域名。
ECS 的經典網絡訪問(內網)
最后面對應的便是我們的 Bucket 域名
。

6. 上傳測試文件

可以上傳一張圖片,作為我們的測試文件。
7. ECS 內網訪問 OSS 原理

8. 配置步驟
8.1 啟用 Apache2 模塊
需要啟用以下模塊:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
啟用方法:
sudo a2enmod <model> // 啟用模塊
sudo a2dismod <model> // 禁用模塊
示例:
sudo a2enmod proxy
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
···
8.2 Apache2 虛擬主機配置
我要將 oss.wujiayi.vip
反向代理到 Bucket 域名
。
Apache2 虛擬主機的搭建請參照我的另一篇教程:Linux環境下Apache2配置多個虛擬主機
8.3 配置反向代理
打開虛擬主機配置文件:
vim /etc/apache2/sites-enabled/000-default.conf
在oss.wujiayi.vip
配置中新增以下代碼:
ProxyRequests Off
ProxyPass / http://xxxxx-xxxxx-cn-shenzhen-internal.aliyuncs.com/
ProxyPassReverse / http://xxxxx-xxxxx-cn-shenzhen-internal.aliyuncs.com/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
如下圖:

注意: Bucket 域名后面一定一定一定要加上 /
,否則無法訪問 OSS 資源。
8.4 重啟服務器
/etc/init.d/apache2 restart
9. 驗證
輸入域名:oss.wujiayi.vip/1.jpg

10. 參考鏈接
歡迎關注我的微信公眾號:吳佳軼同學