rgw static websit配置与测试方法是什么

发布时间:2021-12-30 16:37:31 作者:iii
来源:亿速云 阅读:132

这篇文章主要讲解了“rgw static websit配置与测试方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“rgw static websit配置与测试方法是什么”吧!

1.该功能仅支持J版本以上版本
2.目前boto测试功能可用
3.对DNS依赖较大,用户自己需要做一些S3以外的配置
4.需要开放public-read权限,用户需要做好自身安全配置
5.用于存放静态页面数据,html/css/img等,动态页面不适用

DNS设置

添加泛解析

匹配其他所有域名 *.cephbook.com -> 10.63.48.18,最终效果如下

dig a.cephbook.com #输入任意域名

; <<>> DiG 9.8.3-P1 <<>> a.cephbook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13927
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10

;; QUESTION SECTION:
;a.cephbook.com.            IN    A

;; ANSWER SECTION:
a.cephbook.com.        600    IN    A    10.63.48.18
添加直接解析主域名

直接解析主域名 cephbook.com -> 10.63.48.18,最终效果如下

dig cephbook.com

; <<>> DiG 9.8.3-P1 <<>> cephbook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46079
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10

;; QUESTION SECTION:
;cephbook.com.            IN    A

;; ANSWER SECTION:
cephbook.com.        545    IN    A    10.63.48.18
添加自定义CNAME记录 (可选)

如果默认的cephbook.com域名不能满足用户个性化的需求,则可以通过添加对应的CNAME记录来进行补充,
比如用户拥有自己的域名myitshow.com,需要将所有访问website3.cephbook.com请求都转到website3.myitshow.com,可以添加一条CNAME记录,来实现website3.myitshow.com -> website3.cephbook.com

dig www.myitshow.com

; <<>> DiG 9.8.3-P1 <<>> www.myitshow.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15019
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 10

;; QUESTION SECTION:
;www.myitshow.com.        IN    A

;; ANSWER SECTION:
www.myitshow.com.    111    IN    CNAME    website3.cephbook.com.

radosgw配置

[client.radosgw.cn-zone1]
     rgw dns name = s3.ceph.work
     rgw_dns_s3website_name = myitshow.com #注意这里要用独立的域名,不可用和rgw dns name重复
     rgw_enable_static_website = True #启用static website
     rgw frontends = fastcgi socket_port=9000 socket_host=127.0.0.1
     rgw_resolve_cname = True #开启对CNAME的支持
     host = demo
     keyring = /etc/ceph/ceph.client.radosgw.keyring
     rgw socket path = /home/ceph/var/run/ceph-client.radosgw.cn-zone1.sock
     log file = /home/ceph/log/radosgw.cn-zone1.log
     rgw print continue = false
     rgw content length compat = true

boto用例

  1. bucket和所有的object都要设置为public-read权限才能对外提供匿名访问

  2. 开启website以后,默认访问http://{bucket}.{rgw_dns_s3website_name}/会自动跳转到http://{bucket}.{rgw_dns_s3website_name}/index.html

  3. 开启website以后"index.html"这个object必须存在,否则404,"error.html"为可选配置

  4. 如果需要使用CNAME记录,则rgw_resolve_cname必须开启,否则404,具体原因下面有详细说明

boto用例及说明

from boto.s3.connection import S3Connection
import boto
import os

os.environ['S3_USE_SIGV4'] = 'True' #使用aws4

endpoint = 's3.ceph.work'
bucket_name = 'website2'
access_key = ''
secret_key = ''

conn = boto.connect_s3(
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    host=endpoint,
    is_secure=False,
    calling_format=boto.s3.connection.SubdomainCallingFormat(),
    validate_certs=True,
)

website_bucket = conn.create_bucket(bucket_name,policy='public-read') #新建bucket

#新建index.html页面和error.html页面内容
index_html = """
<html>
  <head><title>S3 Webpage demo</title></head>
  <body><h3>S3-based website</h3></body>
</html>"""

error_html = """
<html>
  <head><title>S3 Webpage error</title></head>
  <body><h3>Something is wrong!</h3></body>
</html>"""


index_key = website_bucket.new_key('index.html')
index_key.content_type = 'text/html' #注意content-type设置
index_key.set_contents_from_string(index_html, policy='public-read') #注意必须是public-read权限
error_key = website_bucket.new_key('error.html')
error_key.content_type = 'text/html'
error_key.set_contents_from_string(error_html, policy='public-read')

website_bucket.configure_website('index.html', 'error.html') #设置website


print website_bucket.get_website_configuration() #获取website配置


#website_bucket.delete_website_configuration() #删除website配置

测试

直接访问

curl http://website3.cephbook.com/

<html>
  <head><title>S3 Webpage demo</title></head>
  <body><h3>S3-based website</h3></body>
</html>%

使用cname方式进行访问

curl http://www.myitshow.com/


<html>
  <head><title>S3 Webpage demo</title></head>
  <body><h3>S3-based website</h3></body>
* Connection #0 to host website3.cephbook.com left intact
</html>%

这里有个坑,如果使用了CNAME,但是rgw_resolve_cname = False,那么会出现以下404提示

curl http://www.myitshow.com/

<?xml version="1.0" encoding="UTF-8"?><Error><Code>NoSuchBucket</Code><BucketName>www.myitshow.com</BucketName><RequestId>tx000000000000000000001-0058e46305-85f6-default</RequestId><HostId>85f6-default-default</HostId></Error>%

感谢各位的阅读,以上就是“rgw static websit配置与测试方法是什么”的内容了,经过本文的学习后,相信大家对rgw static websit配置与测试方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. RGW新特性怎么使用
  2. 怎么用fastcgi模式提高RGW并发数

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rgw static

上一篇:CTF中的命令执行绕过方式有哪些

下一篇:如何进行虚拟机快照的解读

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》