本篇用于填《Huaweicloud CDN回源OBS静态站解析》 留下的坑。这一篇水下本地同事所对接的客户的诉求:静态站存OBS,想在一个桶里实现多个子域名访问可以对应桶的不同子目录。

huaweicloud obs multiple sites

在接到这个需求时,在脑海里出现的解决方案有2个:

  1. 通过 CDN 配置对应的 rewrite 策略实现;
  2. 通过 Nginx 域名接入配置对应的 rewrite 策略实现。

CDN rewrite配置

Domains —> Origin Settings —> Origin URL Rewrite 配置一条如下图的配置规则即可,在通过域名后的 / 匹配后可以自动在后端回源的时候跳转到 /dev/ 目录访问。

cdn origin url rewrite

Huaweicloud CDN Origin URL Rewriting

nginx配置

使用nginx实现更简单,只需要将对应的目录URL在应用的反向代理代址后面增加就行了:

 1[root@ecs-85c2 conf.d]# cat test.conf
 2server {
 3  server_name obs.361way.com;
 4
 5  location / {
 6    proxy_pass http://bucket.361way.com/dev/;
 7    #proxy_set_header Host $host;
 8    proxy_set_header X-Real-IP $remote_addr;
 9    proxy_set_header Host bucket.361way.com;
10  }
11}

注:这里需要将 host 的值改为后端桶的域名,不然会出现无法访问的情况。另外也可以考虑将前面的这个域名加到后面桶的白名单里也应该也可以的,就不用修改host信息了。

最后

对应的两种方式效果是一样的,见下图所示:

obs rewrite domains

另外还有一些其他 URL重写页面可以参考:

  1. OBS 自身配置重定义
  2. CDN 访问URL重写
  3. CDN 回源URL改写