Symfoware

Symfowareについての考察blog

Puma + nginxでRedmine 2.6を動かす

Debian 7でRedmine 2.6を動かす環境を作成しました。
Debian 7 + Ruby 2.1 + Redmine 2.6 + PostgreSQLな環境を構築する

開発用サーバーで起動を確認しましたが、これをPumaで動かすようにしてみます。
http://puma.io/



Pumaのインストール



Redmineは/var/lib/redmine/redmine-2.6.0に展開しています。
Gemfileにpumaの指定を行います。


# cd /var/lib/redmine/redmine-2.6.0
# vi Gemfile




以下の行を追加。


gem "puma"




bundle installを実行すると、pumaがインストールされます。


# bundle install




gem install pumaでもインストール可能ですが、
Gemfileに記載しておかないと、この後の起動でエラーになりました。





Pumaの設定ファイル



ここらへんを参考にしました。
Install Redmine with Nginx, Puma, and MariaDB/MySQL on Ubuntu 14.04
https://gist.github.com/jbradach/6ee5842e5e2543d59adb


config/puma.rbというファイルを作成し、設定を記載します。


# vi config/puma.rb




内容は以下のとおり。


application_path = '/var/lib/redmine/redmine-2.6.0'
directory application_path
environment 'production'
daemonize true
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/pids/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
bind 'tcp://0.0.0.0:3000'




作成したconfig/puma.rbを指定して、起動してみます。


# bundle exec puma -e production --config config/puma.rb




bindで、tcpの3000番を指定しています。
ブラウザで「http://(サーバーIP):3000/」を表示すれば、Redmineの画面が見えるはずです。

これで、Pumaの設定ファイルはうまく作成できたことが確認できました。


tmp/pids/puma.pidにプロセスIDを出力しています。
停止は以下のコマンドで行えます。


# kill `cat tmp/pids/puma.pid`








nginxのインストールと設定



フロントサーバーをnginxにしてみます。


nginxのインストール前に、config/puma.rbのbind設定を変更。
tcpではなく、unixソケットにしました。


application_path = '/var/lib/redmine/redmine-2.6.0'
directory application_path
environment 'production'
daemonize true
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/pids/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
#bind 'tcp://0.0.0.0:3000'
bind "unix://#{application_path}/tmp/sockets/redmine.sock"




apt-getでnginxをインストール。


# apt-get install nginx




お試しなので、設定ファイルを直接変更します。


# vi /etc/nginx/sites-enabled/default




設定内容は以下のとおり。


# upstreamの定義を追加。
# unixソケットを指定する。
upstream redmine {
        server unix:/var/lib/redmine/redmine-2.6.0/tmp/sockets/redmine.sock;
}

server {
        #listen 80; ## listen for ipv4; this line is default and implied
        #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        
        # 全てupstreamに転送
                proxy_read_timeout 300;
                proxy_connect_timeout 300;
                proxy_redirect     off;

                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host             $http_host;
                proxy_set_header X-Real-IP         $remote_addr;

                proxy_pass http://redmine;
        }

}




Pumaを起動。これでunixソケットが作成されます。


# bundle exec puma -e production --config config/puma.rb




nginxを起動。


# /etc/init.d/nginx restart




http://(サーバーIP)/を表示すると、Redmineのトップページが表示されると思います。

関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2014/11/16(日) 16:01:24|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<jungleを使用して、Pumaをデーモンで自動起動する | ホーム | Debian 7 + Ruby 2.1 + Redmine 2.6 + PostgreSQLな環境を構築する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1551-39cc2346
この記事にトラックバックする(FC2ブログユーザー)