Railsの動作確認・Webサーバの設定について説明していきます。各設定をを行います。環境構築を何回かに分けて明記しています。OSはCentOSです。
Railsアプリケーションの動作確認
rake secret
で作成した文字列をコピーします。
secret.ymlを開きます。
vi home/appname/rails_root/config/secret.yml
以下の部分に文字列を挿入します。
production:
secret_key_base: "ここに挿入"
-
home/appname/rails_root/config/secret.ymlは.gitignoreに追記しましょう。
-
apacheをrestartします。
-
Webブラウザから設定したドメインにアクセスします。
※ ドメインをお名前.comなどで取得した場合などはそちらにも設定が必要となります。 -
表示されればOKです。
キャッシュ制御
エディタで/etc/httpd/sites-available/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
の直前に以下を追記します。
<Directory "/home/appname/rails_root/public/assets/">
ExpiresActive On
ExpiresDefault "access plus 1 year"
Header set Cache-Control "public"
Header unset ETag
FileETag None
</Directory>
- appnameは適宜変更してください。
Gzipによる圧縮
エディタで/etc/httpd/sites-available/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
下記の内容をFileETag Noneの直後(</Directory>
の直前)に挿入して下さい。
AddEncoding x-gzip .gz
Header set Vary Accept-Encoding
RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [L]
<FilesMatch \.css\.gz$>
ForceType text/css
</FilesMatch>
<FilesMatch \.js\.gz$>
ForceType text/javascript
</FilesMatch>
エラーページの指定
エディタで/etc/httpd/sites-availale/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
次の内容をRackEnvの直後に挿入してください。
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
ErrorDocument 502 /500.html
ErrorDocument 503 /500.html
ErrorDocument 500 /500.html
ログファイルのパスと出力形式
エディタで/etc/httpd/sites-availale/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
次の内容をRackEnvの直後に挿入してください。
CustomLog /var/log/httpd/appname_access.log common
ErrorLog /var/log/httpd/appname_error.log
- appnameは適宜変更してください。
HTTPレスポンスヘッダの追加
エディタで/etc/httpd/sites-availale/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
下記をセクションまたはセクションの中に記述します。
Header set X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header set X-XSS-Protection "1; mode-block"
リクエストボディのサイズ制限
LimetRequstBody 1073741824
Basic認証
パスワードファイルにguestユーザを追加
sudo -u appname htpasswd -c /home/appname/.htpasswd guest
guestユーザを削除するとき
sudo -u appname htpasswd -D /home/appname/.htpasswd guest
エディタで/etc/httpd/sites-availale/appnameを開きます。
sudo vi /etc/httpd/sites-available/appname
- appnameは適宜変更してください。
ブロックを次のように追記します
<Directory /home/appname/rails_root/public>
AllowOverride all
Options -MultiViews
AuthType Basic
AuthName "Welcome to appname"
AuthUserFile /home/appname/.htpasswd
Require valid-user
</Directory>