介绍
OSS如果通过外网访问,流量费用不菲,本着为客户省钱的原则,使用Nginx内网请求转发来访问OSS。
前提
ECS 和 OSS 的Bucket必须处于同一地域
OSS 内网上传
使用内网Endpoint,例如: oss-cn-shanghai-internal.aliyuncs.com
注意: 本地无效,必须在同地域的ECS上才能正常上传
参考:https://help.aliyun.com/knowledge_detail/39584.html?spm=5176.2000002.0.0.5be425a7vjEOP2
OSS内网访问,依靠Nginx代理
-
注意:必须使用下面这种配置方式,否则反向代理会出现
The specified key does not exist
导致外网可访问, 反向代理内网无法访问server { listen 1234; server_name 47.88.123.123; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/www.test.com; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 error_page 404 /404.html; error_page 502 /502.html; #ERROR-PAGE-END #PHP-INFO-START PHP引用配置,可以注释或修改 include enable-php-72.conf; #PHP-INFO-END #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/www.test.com.conf; #REWRITE-END #禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; } #一键申请SSL证书验证目录相关设置 location ~ \.well-known{ allow all; } access_log /www/wwwlogs/www.test.com.log; error_log /www/wwwlogs/www.test.com.error.log; location / { proxy_pass http://yunqiao-test.oss-cn-hangzhou-internal.aliyuncs.com; } }
访问示例 : 域名(Ip+端口) + 文件地址
http://47.88.123.123:1234/image/avatar/201903/19/201903192323th5c91098d53d38.png
建议通过域名访问,然后再进行内网转发
缺点
会占用ECS的带宽