Apache VirtualHostの設定


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

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


🐡 Apache + PassengerのVirtualHost設定

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

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の設定画完了したら、コンソールで設定を反映。

apachectl -t
> Syntax OK
sudo apachectl graceful

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

📚 おすすめの書籍