酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Apache VirtualHostの設定

Apache + PassengerでRailsサーバを立てるときに使うVirtualHostの設定です。個人的に幾つかの記事に分散していて、見にくかったという俺得記事ですww

もし、より効率的な設定とか有ればぜひ教えて下さい^^


Apache + PassengerのVirtualHost設定

Apache + PassengerでVirtualHostを設定する場合のconfは今はよくこんな感じで書いています。 (vim /etc/http/conf.d/vhost.confによく書きます。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
NameVirtualHost *:80
<VirtualHost *:80>
    ServerName domain_name
    ServerAlias *.domain_name
    DocumentRoot /somewhere/public
    RailsEnv production
    PassengerEnabled on
    RemoveHandler .cgi .php

   # mod_deflateでjs/cssファイルを圧縮
   <Location />
        <IfModule mod_deflate.c>
            SetOutputFilter DEFLATE

            SetEnvIfNoCase Request_URI \
                \.(?:gif|jpe?g|png)$ no-gzip dont-vary

            Header append Vary User-Agent env=!dont-vary
        </IfModule>
    </Location>

    # js, css, 画像ファイルなどのexpireの設定
    <IfModule mod_expires.c>
        <LocationMatch "\.(js|css)?\.*$">
            ExpiresActive On
            ExpiresDefault "access plus 1 years"
        </LocationMatch>

        <LocationMatch "\.(gif|jpg|png)$">
            ExpiresActive On
            ExpiresDefault "access plus 1 years"
        </LocationMatch>
    </IfModule>

    <Directory /somewhere/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
</VirtualHost>

ちなみに、この設定の中に出てくるmod_deflateは圧縮を行ってくれるapachのモジュールで、mod_expireは有効期限を設定してくれるモジュールです。

Apacheの設定画完了したら、コンソールで設定を反映。

1
2
3
apachectl -t
> Syntax OK
sudo apachectl graceful

恥ずかしながら素人レベルなので恐縮ですが、ちょっとずつよくしていきたい^^

おすすめの書籍