nginxのマスタプロセスとワーカプロセス
- 備忘録です。マスタプロセスやワーカプロセスについて確認用
nginxはマスタプロセスとワーカプロセスのマルチプロセス構成で稼働する。
- つまり、マスタプロセスは1つ、ワーカプロセスは設定することで複数起動可能。
マスタプロセスについて
- マスタプロセスにシグナルを送ることでnginx全体のプロセスを制御する。
- 各ワーカプロセスはマスタプロセスが受信したシグナルの種類に応じて各ワーカプロセスにもシグナルを送る。
ワーカプロセスについて
- 通常シングルスレッドで動作しますが、I/O MultiplexingやノンブロッキングI/Oを利用することで複数のクライアントとの入出力を並行して行うことを可能。
- ワーカプロセス自体は複数起動可能なので容易にスケールさせることができる。
◆スケーリング【scaling】スケールする
情報システムの分野では、装置やソフトウェア、システムなどの性能や処理能力を、要求される処理量に合わせて増強したり縮減したりすることをスケーリングという。 「IT用語辞典」より
マスタプロセスとワーカプロセスの流れ
①シグナルを送る(SIGTERM,SIGQUIT,SIGHUPなど)
②マスタプロセスがシグナルを受け取る
③マスタプロセスが受信したシグナルの種類に応じて各ワーカプロセスにもシグナルを送る
④複数のワーカプロセスが受信
ブランチ戦略
git-flow/github-flow
git-flow
- メインブランチを2つ (中央リポジトリ)
- master (リリース用)
- develop (開発用)
- サポートブランチを3つ(開発メンバーのリポジトリ)
- feature (developから派生。機能開発用。機能開発が終了次第、developにマージされて消える)
- release (developから派生。リリース準備用。リリースが終われば、masterとdevelopにマージされて消える)
- hotfix(masterから派生。リリース済みの製品に緊急対応用。masterにマージされ、タグをうつ)
github-flow
- masterのものはすべてリリース可能
- 新しく何かをするときはmasterから直接ブランチを作成
- 作成したブランチはローカルマシンにコミットして、リモートリポジトリにも同じ名前のブランチとして定期的にPush
- 開発が完了したらmasterへPull Requestを
- Pull Requestがレビューされたらmasterにマージし、その場で本番環境にリリースする
*チーム開発実践入門 参考