old « Bootstrapではrowの直下にコンテンツを置いてはいけない | メイン | 赤レンガ倉庫のストロベリーフェスティバル » new

初めてのさくらのVPSでnginx+unicorn+sinatra環境構築したときのメモ

2017年01月29日

sinatraをCGI起動では無くRackアプリ?として動かしたいので、さくらのVPSを借りた。
メモリ1GでSSD30Gのプラン。

導入に当たって参考にしたサイトをメモして行くよ。
細かい手順はここには書かないよ。

■Vim
参考:
Vim初心者に捧ぐ実践的入門 Qiita
覚えておきたい Vim コマンド 備忘録 Qiita

SSH接続で端末からファイルを編集するときにVimを使ったので、Vimのコマンドは上記サイトを参考にした。

■初期設定
参考:
さくらのVPS入門 ドットインストール

#1~#10までを実施して、一通り初期設定をする。
#6,7に登場する鍵認証の手順はMacの手順しか教えてくれないので、Windowsの手順は以下を参考にした。
Tera Termで公開鍵認証

■FTPの導入
参考:
さくらVPSでFTPを使える様にした Qiita
さくらVPSにFTPサーバー(vsftpd)を1時間で導入

この辺を見ながら、vsftpdを導入してファイアウォール設定変更とかをした。

手こずったのは、「iptables」の変更。
以下の行を追加しろって言われたからその通りにやったら、restartで怒られた。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
iptables: ファイアウォールルールを適用中: iptables-restore: line 17 failed [失敗]

色々調べて何とか解決した。
「RH-Firewall-1-INPUT」っていう謎の呪文がいけないっぽいので、「SERVICES」に置き換えたら上手く行った。
「RH-Firewall-1-INPUT」は変数みたいなもんってことかな。

-A SERVICES -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

■rubyとかnginxkとかの導入手順
参考:
さくらVPSにまっさらな状態からRuby2.1.0+Rails4.2.1+nginx+unicorn+capistranoの環境を構築したのでやんわり手順を書いた。 Qiita

nginxのインストールまでを上記手順で実施。
rubyのバージョンはローカルと合わせるために2.2.4にした。

参考:
【Ruby】Sinatraで、速攻でWebサイトを公開するための環境構築 Qiita

nginxとunicornの設定あたりはこの辺を参考にした。

■nginxでwww付きのURLをwww無しのURLにリダイレクトする方法
参考:
[Nginx] www 付きの URL を www 無しにリダイレクトさせる設定方法

書かれたとおりにやったら上手くいった。
この辺は、普通のレンタルサーバーだと管理画面で出来ちゃうから楽だよねぇ。

■nginxコマンド

nginx起動
$ service nginx stop
nginx停止
$ service nginx start
nginxリロード(confを編集したときとか)
$ service nginx reload

■unicornコマンド

Unicorn起動コマンド
$ bundle exec unicorn -E production -c unicorn.rb -D
Unicornが起動してるかプロセスの確認
$ ps -ef | grep unicorn | grep -v grep
Unicornを止める(プロセスを止める)
$ kill -9 [Process ID]

こんな方法もあるらしい。
(でもなんかヘルパーの更新が反映されなかったから上の方法でやり直した)

Unicornを止める(プロセスを止める)
$ kill -QUIT `cat ./tmp/pids/unicorn.pid`
Unicornを再起動する
$ kill -HUP `cat ./tmp/pids/unicorn.pid`

これが最強だった。
起動スクリプトを作って、コマンドで起動とか停止とか。

$service unicorn start

$service unicorn stop

$service unicorn reload

$service unicorn restart

参考:NginxとUnicornを使っていたら自動起動設定は必須

■ログのローテーション
参考:
rails5 + unicorn + nginx : ログローテーション Qiita

日次でログをローテーションさせるようにした。

■ログファイル見るとき

tailコマンドでファイル末尾から指定した行数だけを見られる。
tail -n 10 /xxx/yyy/abc.log
-fを付けると常に最新のログを垂れ流しに出来る。便利。
tail -f -n 10 /xxx/yyy/abc.log

old « Bootstrapではrowの直下にコンテンツを置いてはいけない | メイン | 赤レンガ倉庫のストロベリーフェスティバル » new

トラックバックURL

このエントリーのトラックバックURL:
https://blog.hp-improve.com/mt/mt-tb.cgi/1551

コメントする