tDiaryをnginxとthinで立ち上げる
初めての投稿はどのようにしてtDiaryを動作させているかの説明です。 インターネット上の記事にはnginxとunicornを用いて動作させる記事がたくさんありますが、thinを使った記事はあまり見かけません。 なので今回はthinで試してみたいと思います。
とはいってもthinで立ち上げてnginxをフロントに建ててあげれば良いだけなので簡単です。ちなみに参考にした記事は以下の通りです。:clap:
http://igarashikuniaki.net/diary/20131229.html http://transitive.info/2013/05/04/tdiary-unicorn-nginx/
フォルダ構成
いがいが日記さんの構成とほぼ同じ感じで構築していきます。ちなみにConoha VPS上で構築しています。ハイフンとアンダーバーがあって気持ち悪いですが・・・・・・ どちらもGithubから引っ張ってきてる感じです。gemから生成させることもできますが、install時にエラーが発生したのでとりあえずこちらに。
. ├── tdiary-contrib ├── tdiary-core └── tdiary_data
そして、tdiary.confを少し変更します。Markdownで書けるようにするための変更と、contribにあるプラグインの読み込みです。
@datapath = '/*/*/tdiary_data' @style = 'GFM' @options['sp.path'] = [ 'misc/plugin', '/*/*/tdiary-contrib/plugin' ]
nginx thin周りの設定
nginxは特定のリクエストはlocalhostの特定ポートに流す設定で良いです。簡単な設定例は以下の通りです。
upstream tdiary { server localhost:12341; } server { listen 80; server_name boltz.kuroknee.so; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto http; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://tdiary; } }
thinの設定ファイルはyaml形式で記述する必要があります。今回はtdiary-coreの中にthin.ymlというファイルを作成しましょう。
environment: production address: 0.0.0.0 port: 12341 pid: thin.pid log: log/thin.log daemonize: true
これでデーモンとして立ち上がるような感じです。この設定を読み込んで立ち上げるには以下のコマンドを実行しましょう。
$ thin -C thin.yml start
ちなみに、start部分をrestartなりstopなりに変更すれば柔軟に対応できます。またunixsocketの形で接続することも出来ます。上手い感じの運用方法考えていきたいですね。