23
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ConoHaオブジェクトストレージ(OpenStack Swift)でWEB公開した超長いURLを短くする方法

Last updated at Posted at 2014-12-29

##ConoHaオブジェクトストレージのURLの問題点

ConoHaのオブジェクトストレージ(OpenStack Swift)で公開したURLは絶望的に長いURLになることが下記の前回の記事で分かりました。
ConoHaオブジェクトストレージの静的WEBページ公開機能でイメージギャラリーを作る

糞長いURLの例
https://objectstore-r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/bgi_sample/index.html
https://objectstore-r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/bgi_sample/images/DSC02403.JPG

リンクタグ、イメージタグなどHTMLに埋め込むタイプの用途に使うならこの長いURLでもいいのですが、この長いURLにはいくつか問題があります。

  • あなたのサーバーがConoHaのオブジェクトストレージを使用していることがバレてしまう
  • あなたのオブジェクトストレージエンドポイント(93a6500c0a1e4c68b976e5e46527145cの部分)が丸見えになる
  • 糞長いURLのためそのままSNSや掲示板などに貼ると長ったらしくてみんなから嫌がられる

・・・とセキュリティ的にも利便的にもあまりいけてない仕様になってしまいます。

この問題はNginxでリバースプロキシで解決できます。

##Nginxを使ってConoHaオブジェクトストレージのURLを短くする

conohaw.png

###必要なもの

  • オブジェクトストレージのWEB公開しているコンテナ
  • Nginxがたてられるサーバー(ConoHa VPSやさくらサーバーなど)説明ではホスト名をhoge.comとする。
  • 短いドメイン(任意) ここでは hoge.com のドメインを取得してるものとする

###ConoHaのオブジェクトストレージにweb_pub_testフォルダ(コンテナ)を作成しWEB公開モードにする
swiftコマンド等を使ってweb_pub_testフォルダを作成する

chinoコマンドの場合は以下
mkdir web_pub_test
echo "Hello" > web_pub_test/test_file.txt
bundle exec ruby chino.rb -w -s ./web_pub_test/ -d /web_pub_test

VPSサーバーにNginxをインストール

CentOSの場合
yum install nginx
もしくは以下のサイトから最新版をとってきて
http://nginx.org/packages/rhel/6/x86_64/RPMS/
curl -O XXXX.rpm
rpm -ivh XXXX.rpm

インストールするとかってにnginxサーバーは起動しているはず。

設定ファイルを書き換える

/etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /x/ {
        proxy_pass https://objectstore-r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/web_pub_test/;
    }
}

location以降がプロキシーサーバーの設定になります。
http://hoge.com/x 以降にリクエストが来たときにConoHaのオブジェクトストレージ(web_pub_testフォルダ)にリクエストを受け渡すように設定する。

###Nginxをリロード
nginx -s reload

###ConoHaのオブジェクトストレージに短いURLでアクセスできる

上記の設定でブラウザから
http://hoge.com/x/test_file.txt にアクセスするとリバースプロキシされて
https://objectstore-r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/web_pub_test/test_file.txt
の内容が表示されます。

ConoHaオブジェクトストレージ+Nginxリバースプロキシの使いどころ

ConoHaのオブジェクトストレージ、またはOpenStackのSwiftを使用しファイルをWEB公開する場合、本格的に使用しようとすると
URLが長い問題に必ず突き当たると思われます。
そんな時はサクっとNginxのリバースプロキシ機能でURLを短くしちゃいましょう。

23
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?