Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-02-01

CapistranoでApacheのWebサーバーの設定ファイルを生成

17:42 |  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst を含むブックマーク はてなブックマーク -  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst のブックマークコメント

以下のようなタスクでApacheのファイルを生成するようにしてみた。

やっていることは、

  • ERBのテンプレートから設定ファイル読み込んで
  • テンプレートからApacheの設定ファイルを生成して
  • 設定ファイルをサーバーにアップロード

deploy.rbに以下の変数を設定

set :apache_web_config_dir, "/path/to/apache_config_dir"
set :appserver_ips, ["192.168.0.2", "192.168.0.3"]

タスクは以下のような感じ

  desc "Creates an Apache 2.2 compatible virtual host configuration file for web server"
  task :create_apache_web_config, :roles => :web do
    config_template = File.read(File.dirname(__FILE__) + "/templates/apache_web.erb");
    config = ERB.new(config_template).result(binding)
    put config, "/tmp/apache-web-#{subdomain}.#{domain}-#{application}.conf"
    sudo "mv /tmp/apache-web-#{subdomain}.#{domain}-#{application}.conf #{apache_web_config_dir}"
  end

config/template/apache_web.erbは以下のような感じ。

NameVirtualHost *:80
<VirtualHost *:80>
        <IfModule proxy_module>
            # フロントのproxyが詰まらないようにする
            # ために、timeout時間を短くする
            ProxyTimeout 3
        </IfModule>

        ServerName <%= subdomain %>.<%= domain %>
        ServerAdmin webmaster@localhost

        DocumentRoot <%= deploy_to %>/current/root
        Alias /static <%= deploy_to %>/current/root/static

        ProxyRequests Off
        <Proxy *>
            Order deny,allow
            allow from all
        </Proxy>

        # App server
        <Proxy balancer://<%= application %>/>
            <% appserver_ips.each do |appserver_ip| %>
            BalancerMember http://<%= appserver_ip %>:8080 loadfactor=10 keepalive=On
            <% end %>
        </Proxy>

        ProxyPass /static/images !
        ProxyPass /static/js !
        ProxyPass /static/css !
        ProxyPass /favicon.ico !
        ProxyPass / balancer://<%= application %>/
        ProxyPassReverse / balancer://<%= application %>/
        # バックエンドでVirtualHostの場合に
        ProxyPreserveHost On

       <Location /static>
            SetHandler  default-handler

            # mod_filterでdeflate
            <IfModule filter_module>
                FilterDeclare deflate CONTENT_SET
                FilterProvider deflate DEFLATE Content-Type /text\x2F\w+|application\x2Fx-javascript/
                FilterChain deflate
            </IfModule>
            # mod_expiresでexpire
            <IfModule mod_expires.c>
                ExpiresActive On
                ExpiresDefault "access plus 1 year"
                ExpiresByType image/gif "access plus 1 week"
                ExpiresByType image/jpeg "access plus 1 week"
                ExpiresByType image/png "access plus 1 week"
                ExpiresByType application/x-shockwave-flash "access plus 1 week"
                ExpiresByType text/html "access plus 1 week"
                ExpiresByType text/css "access plus 1 week"
                ExpiresByType application/x-javascript "access plus 1 week"
            </IfModule>
       </Location>

       ErrorLog <%= deploy_to %>/current/logs/apache_web/error.log
       LogLevel warn
       CustomLog <%= deploy_to %>/current/logs/apache_web/access.log combined
       ServerSignature On
</VirtualHost>

TODO

  • appserver_ipsと role :webの設定がダブっちゃっているのがいまいち...
  • 上記のタスクをどの段階で呼ぶのかの検討
    • setup, or after_update_code?
  • catastarterへの追加
    • もうちょっと構成を検討しおえたら。

大体、CapistranoとERBの使い方も大体わかったので、これからテンプレート追加していくのは簡単かなと。Capistranoでの構成とCatalystの構成にあわせて、オレオレ環境で一発Deployできるようにまでしていこうかなと。

Webサーバー、アプリケーションサーバー、DBサーバーの自動設定をしないといけないなと。実際にやろうとすると、まだまだやることありそうだなぁ。

WilliamidemaWilliamidema2019/02/02 09:56ist cialis rezeptpflichtig
cialis london delivery
<a href=https://kellyannehulme.com>Cheap cialis buy</a>
you tube cialis
cialis 20mg user reviews
https://kellyannehulme.com
cialis online america
what does cialis do for men
<a href=https://kellyannehulme.com>20 mg cialis</a>
cheap cialis online canadian pharmacy
cialis online bestellen mit rezept
https://greatwinesgrandhouses.com

ArnoldwalArnoldwal2019/02/05 18:01cialis over seas
cialis generika shop
<a href="http://xcialisxx.com">Buy Cialis Online</a>
walmart pharmacy cialis pills
is adcirca cheaper than cialis
<a href="http://xcialisxx.com">Buy Cialis Online</a>
cialis generico espana
order cialis online south africa
<a href="http://cialisfurr.com">Buy Cheap Cialis Online</a>

KelhitaKelhita2019/05/12 21:06Priligy Originale Vendita On Line <a href=http://drugsir.com>cheap cialis</a> Acheter Cialis Quebec Buy Levitra In Us Without Prescription Propecia Cost Buy

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080201