- 更新日: 2014年8月3日
- Rails
Nginx + Unicorn環境だとSELinux有効で普通にRails4アプリが動作した
Nginx + Unicorn 環境で動かしている Rails4 アプリの場合、試しに SELinux を有効にしたところ、特に何も対策せずに普通に動作させることができました。
— 環境 —
CentOS 6.4
nginx 1.6.0
unicorn 4.8.3
rails 4.1.1
Apache + Passenger の環境だと、SELinux 有効で Rails 動作させるのに超苦労した記憶があります。
SELinux 有効(enforcing)で VirtualHost を /var/www/html 配下以外でも動作させる 〜 CentOS6 | EasyRamble
SELinux 有効(enforcing)で Apache + Passenger のもと Rails で Redmine を動作させる 〜 CentOS6 | EasyRamble
SELinux を有効にする
SELinux を有効にするには、以下の設定をしてサーバー再起動。
1 2 3 4 |
# vi /etc/sysconfig/selinux SELINUX=enforcing |
サーバー再起動後、SELinux の有効確認。
1 2 3 4 |
# getenforce Enforcing |
その後、Unicorn のプロセス起動。
nginx 設定ファイル
nginx 用の設定ファイルは以下のような感じです。
/etc/nginx/conf.d/rails_app.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
server { listen 80; server_name rails_app.centos; access_log /var/log/nginx/rails_app.centos.access.log; root /home/user/projects/rails_app/current/public; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://127.0.0.1:3000; break; } } } |
その他、config/unicorn.rb など設定は以下を参照。
Nginx + UnicornでRailsアプリ(Redmine)を動作させる | EasyRamble
CentOS6にNginxをインストール〜バーチャルホスト設定 | EasyRamble
Nginx + Unicorn だと SELinux 有効でも簡単に動くので大変楽です。Nginx x SELinux 環境の情報が意外と少なかったのは当たり前に動くからかなぁ。調べてたら以下の情報を見つけました。2番目のページに Nginx を SELinux 有効でセキュリティアップすると、「2%-8%ほどのオーバーヘッドが発生する」とあります。
[CentOS][Redmine]CentOS 6, 7にRedmineとUnicornとNginxをインストール – torutkの日記
高速WebサーバNginxセキュリティ設定20 | マイナビニュース
そう言えば思い出したけど monit でのプロセス監視で、Unicorn のプロセスを監視する設定を追加しないといけません。明日やろう。
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!