阿里雲oss圖片儲存服務通過nginx轉發至外網
阿新 • • 發佈:2018-12-17
公司採用了阿里雲的oss來儲存大量圖片,oss儲存很方便,儲存的圖片可直接通過url地址訪問,但是也有個問題,外網訪問oss檔案需要通過流量計費,而內網訪問不計流量費用。原本我們就有阿里雲伺服器,既然如此是否可通過在阿里雲伺服器上的nginx進行轉發,這樣就可達到即可訪問oss又不需要單獨計費的外網流量。說幹就幹。
配置
部署nginx的過程不詳述,只寫一下如何配置nginx轉發:
將server修改為如下,新增upstream mysvr配置節點,proxy_set_header Host一定不能少,否則訪問不了。
server { listen 80 default_server; listen [::]:80 default_server; # your domain name , such as : # server_name pic.baidu.com; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { add_header backendIP $upstream_addr; add_header backendCode $upstream_status; proxy_pass http://mysvr; proxy_set_header Host yourOssName.oss-cn-shenzhen-internal.aliyuncs.com; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } upstream mysvr { server oss-cn-shenzhen-internal.aliyuncs.com; }
oss設定-修改檔案訪問許可權
在預設訪問許可權情況下檔案生成的url會有過期時間,過期就不能訪問,可修改檔案的訪問許可權為“公共讀”,或者直接修改Bucket許可權為“公共讀”,url將一直有效。