Ceph集群中为静态web主机配置网关(redhat官方文档翻译)

redhat官方文档网址:

https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html-single/object_gateway_guide_for_red_hat_enterprise_linux/#assumptions

翻译部分为原文2.9: Static Web Hosting 


传统的web主机有时为每个网站建立一个web服务器,当内容是静态的时候,它可以有效地利用资源。ceph对象网关可以在S3 buckets中托管静态站点——也就是说不用像PHP,servlets,数据库,nodejs,一样。这种方法比为每个站点设置虚拟机都要经济的多。

 

2.9.1设想:

静态web托管至少需呀一个运行Ceph存储集群,以及至少两个静态web站点的Ceph对象网关实例。

请参阅haproxy/keepalion配置,了解有关haproxy/keepalion的详细信息。

注意:

Red Hat 不支持使用Ceph对象网关实例来支持标准的S3/swift api和静态web主机。

 

2.9.2需求:

静态web托管功能使用它自己的API,因此在S3桶中配置一个网关使用静态web站点需求如下:

1.S3静态web主机使用Ceph对象网关实例,它们是独立的,与标准的S3/swift API用例使用的实例不同。

2.托管静态web站点的网关实例应该从标准的S3/swift API网关实例中分离出独立的、非重复的域名。

3.应该使用独立公开的IP地址。

4.网关实例托管S3静态web站点的负载均衡,如果需要终止SSL则使用haproxy/keepalived

2.9.3设置网关

要启用静态web主机的网关,编辑Ceph配置文件并添加以下配置

[client.radosgw.<STATIC-SITE-HOSTNAME>]
...
rgw_enable_static_website = true
rgw_enable_apis = s3website
rgw_dns_name = objects-zonegroup.domain.com
rgw_dns_s3website_name = objects-website-zonegroup.domain.com
rgw_resolve_cname = true
...

rgw_enable_static_website的站点设置必须正确,rgw_enable_apis的设置必须设置S3 api

rgw_dns_namergw_dns_s3website_name需配置正确的域名。如果站点使用规范的名称扩展,那么将rgw_resolve_cname设置为true

objects-zonegroup.domain.com. IN    A 192.0.2.10
objects-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:10
*.objects-zonegroup.domain.com. IN CNAME objects-zonegroup.domain.com.
objects-website-zonegroup.domain.com. IN    A 192.0.2.20
objects-website-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:20

注:  rgw_dns_name 和 rgw_dns_s3website_name 的名称不能一样

2.9.4 配置DNS

下面是虚拟的DNS配置实例,前两行使用S3接口指定网关实例的域,分别指向IPv4IPv6地址。

第三行为扩展的S3bucket提供了一个CNAME设置。四、五行分别使用S3网站接口指定网关实例的域,分别指向IPv4IPv6的地址。

 

注意:前两行的IP45行的不同

如在多站点配置中使用Ceph对象存储网关,则考虑使用路由解决通信路由到客户端最近的网关。

Amazon Web Service(AWS)需要静态web主机bucket来匹配主机名。Ceph提供了几种不同的配置DNS的方式,代理需要有匹配证书,HTTPS才能工作。

 

子域名上的主机名

要使用AWS风格的S3子域,可以在DNS条目中使用通配符,并可以将请求重定向到任何bucket

DNS的配置应该如下:

*.objects-website-zonegroup.domain.com. IN CNAME objects-website-zonegroup.domain.com.

用以下方式定义bucket的名称

 

http://bucket1.objects-website-zonegroup.domain.com

bucket的名为bucket1

 

主机名不匹配的bucket

ceph的独特之处在于,支持将域名映射到bucket中,而不需要在请求中包含bucket名称。使用一个域名访问一个bucket,将域名映射到bucket名。DNS配置如下:

www.example.com. IN CNAME bucket2.objects-website-zonegroup.domain.com.

bucket名为bucket2

用以下方式访问这个bucket

 

http://www.example.com

CNAME存储的主机名

AWS通常需要使用bucket条目来匹配域名。要为CNAME的静态web主机配置DNS,配置如下:

 

www.example.com. IN CNAME www.example.com.objects-website-zonegroup.domain.com.

以如下方式访问bucket:

 

http://www.example.com

没有CNAME的主机名

DNS名称包含其他非cname记录,如SOANSMXTXTDNS记录必须将域名直接映射到IP地址,例如:

 

www.example.com. IN A 192.0.2.20
www.example.com. IN AAAA 2001:DB8::192:0:2:20

访问方式:

 

http://www.example.com

2.9.5创建一个网站

创建一个静态网站,包含如下步骤:

1.创建一个bucketbucket名称可以与站点的域名相同。例如,mysite.com可以有一个名为mysite.combucket。这对于AWS是必须的,但对于ceph不是不虚的,详情参考DNS设置。

2.将静态网站的内容上传到bucket中,内容可能包括HTMLCSS、客户端JavaScript、图像、音频/视频和其他可下载的文件。一个网站必须有一个index.html,和error.html文件。

3.验证网站的内容,这一点,只有bucket的创建者才能访问内容。

4.可以对文件的权限进行设置,以便读取。

 

 

 

 

 

 

 

 

 


猜你喜欢

转载自blog.csdn.net/qq_23348071/article/details/73835400