share facebook facebook twitter menu hatena pocket slack

2012.07.06 FRI

mod_sedでHTML上の画像などのURLをS3やCloudFrontに置換

鈴木 宏康

WRITTEN BY 鈴木 宏康

今回は、Cloud Design Pattern(CDP)の記事になります。
対象は「URL Rewritingパターン」です。

このパターンの「実装」に下記の記載があります。

Apacheのフィルターモジュール(mod_ext_filter/mod_sed)やプロキシーとして用意したNginxなどで動的に書き換えることも可能。

mod_ext_filterに関しては、mod_ext_filterで画像などのURLをCloudFrontのものにの記事で
紹介しているので、今回は同様のことをmod_sedで実現してみました。

はじめにインストールですが、下記のようにatomicリポジトリを登録してyumで簡単にインストールできました。

# rpm -Uvh http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/atomic-release-1.0-14.el6.art.noarch.rpm
# yum -y install mod_sed

フィルタールールは下記のようにhttpd.confに記述しています。

AddOutputFilter Sed html
OutputSed "s/"/(.*).js"/"http://s3/1.js"/g"
OutputSed "s/"/(.*).css"/"http://s3/1.css"/g"
OutputSed "s/"/(.*).gif"/"http://s3/1.gif"/g"
OutputSed "s/"/(.*).jpg"/"http://s3/1.jpg"/g"

そして、下記のHTMLをソースとして、上記のフィルタールールでApacheからコンテンツを確認します。


  
    
    
    
    
    
    
    
    
  
  
 
 
 
 
    
 
 
 
    test
 test
    test
    test
  

そうすると、該当する部分が変換されていることが確認できます。


  
    
    
    
    
    
    
    
    
  
  
    
    
    
    
    
    
    
    
    test
    test
    test
    test
  

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。