初めてのさくらの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 stopnginx停止
$ service nginx startnginxリロード(confを編集したときとか)
$ service nginx reload
■unicornコマンド
Unicorn起動コマンド$ bundle exec unicorn -E production -c unicorn.rb -DUnicornが起動してるかプロセスの確認
$ ps -ef | grep unicorn | grep -v grepUnicornを止める(プロセスを止める)
$ kill -9 [Process ID]
こんな方法もあるらしい。
(でもなんかヘルパーの更新が反映されなかったから上の方法でやり直した)
$ 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