読者です 読者をやめる 読者になる 読者になる

RailsのフロントエンドをApache&mod_proxyで運用する時の静的コンテンツ設定

rails

原因がわかった。
かなりマヌケなことをしていて「俺ってあほだなぁ」と思ってしまいました。

フロントエンドをApacheにしてリクエストを受け付けているのですが、
代理で受け付けてくれてリクエストをそのまま、プロセス事に振り分けてくれるのかなと思っていたら、静的コンテンツは対象外なんですね。

きちんとDocumentRootDirectoryの設定を行わないといけない。

DocumentRootの設定をし忘れていた自分にがく然とした・・・
設定がApache2デフォルトになっていました。


原因も分かって、既存のApache2のデフォルトコンテンツとRailsコンテンツをドメインレベルで分けたいと思いますので、このような設定にしました。

apache2.conf

<VirtualHost *>
    ServerName 69.12.216.76
    DocumentRoot /var/www/
    #Apache2コンテンツ用のDirectory等の設定
</VirtualHost>
<VirtualHost *>
    #Rails用
    ServerName www.hogehogesite.domain
    DocumentRoot /var/path/appname/public
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
 
    <Directory /var/path/appname/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
 
    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    <Proxy balancer://mycluster>
        BalancerMember http://www.hogehogesite.domain:3000 loadfactor=10 keepalive=On
        BalancerMember http://www.hogehogesite.domain:3001 loadfactor=10 keepalive=On
    </Proxy>
</VirtualHost>

RailsによるアジャイルWebアプリケーション開発 第2版

RailsによるアジャイルWebアプリケーション開発 第2版

のページにも記載があった。
DocumentRootのサンプルはあったのですが、静的コンテンツに関する説明はなし。これって当たり前の事すぎだからなんですよね?きっと・・・
Apacheの設定もやっていかないとな。
一から手でhttpd.conf書いた事ないし、これだけ豊富な機能があるのに主要機能や設定も知らないのはもったいなさすぎ。

よし、これで少し前にすすめる。