标签:CentOS nginx OSS Bucket 访问 域名 ECS
本文来自于【阿里云官方镜像站:https://developer.aliyun.com/mirror/?utm_content=g_1000307095 】
原文链接:https://developer.aliyun.com/article/764847?spm=a2c6h.12873581.0.0.70212784gaDzaG
简介: 阿里云OSS的存储空间(Bucket)访问地址会随机变换,大家可以通过在ECS实例上配置OSS的反向代理,实现通过固定IP地址访问OSS的存储空间。本文主要为大家讲解在ECS实例上配置OSS的反向代理的步骤。
一、背景信息
阿里云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资源。
标签:CentOS,nginx,OSS,Bucket,访问,域名,ECS 来源: https://blog.csdn.net/m0_66975666/article/details/123122958
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。