ブログ・システム構成

公開:2014-07-14 06:03
更新:2020-02-15 04:37
カテゴリ:web,wordpressから静的htmlへ

システム構成

ここ数日システム構成をぼやっと考えていたが、まとまってきたので図にしてみた。 UAとの静的コンテンツのやり取りは基本NGINXを経由して行う。UAからのコンテンツ要求はすべてNGINXによりgzipで返す。ファイルシステム内のコンテンツはすべてgzipで保存されており、gzip_staticモジュールによりNGINXを経由してそのままUAに渡される。よってNGINXでは静的HTMLのキャッシュは行わない。例外として各ディレクトリのindex.htmlのみは要求があった場合はnode.jsに渡され動的に作成する。そのためキャッシュする。このような設定がNGINXでできるか検証していないのでひょっとするとここも静的ファイルで一気に作ってしまうかもしれないが、更新時にindexページ生成に時間がかかるためにまずは動的生成・キャッシュでやってみようかなと思う。 コンテンツは普通にhtmlをgzip化し、カテゴライズはディレクトリ構造を利用する。実体は時系列のディレクトリ内に保存し、その他のカテゴリには実体は置かずハードリンクかシンボリックリンクを貼ろうと思っている。実はこのハードリンク・シンボリックリンクって違いがまだよくわかっていないので、勉強する必要がある。 node.jsはNGINX配下で動的コンテンツ作成エンジンとして機能するほか、socket.ioや管理システムとして直接UA要求をさばいたり、web apiのフロントとして機能したり、OS内部処理のスクリプトエンジンとして利用する。

ブログコンテンツ管理システム

ブログコンテンツはnode.js上で専用システムを作り、管理する。markdownエディタ+αの機能を持つもので、既存コンテンツの作成・編集・削除ができるものである。HTMLファイルなどファイルを直接アップできるようにするつもりである。HTML以外のコンテンツはアップすると外部ストレージへ自動的に保存するようにしたいと考えている。 作成・更新・削除時にサイトマップも作り自動的にgoogleやbingに送信することや、tumblrやtwitterとの連携も考えている。

gitによる開発成果物の更新

テストコードやWebアプリ等の開発物の成果物更新はすべてgitを使って行いたいと考えている。今のところWebサーバーをgitサーバーとしても機能させ、コンテンツをpushすると内部的にpullして更新を反映させるようにしたいと考えている。ソースコードはgithubで行いたいのでそことどう連携するか今考えているところである。