メニュー

1-7 リバースプロキシを準備する前の事前知識

Nginxはリバースプロキシやロードバランサの設定が容易。

リバースプロキシは、クライアントからのWEBアクセスを別のWEBサーバーに転送するサーバーのこと。
転送先のWEBサーバーはクライアント側からは見えない。なので、NginxをリバースプロキシにしてApacheをWEBサーバー(転送先)に設定すると、デベロッパーツールやcurlを使ったクライアント側での検証ではサーバーにNginxを使用していると表示される。

ロードバランサーは複数の転送先に負担を分散するリバースプロキシのこと。

psコマンド

psコマンドはプロセスを確認・管理するコマンド。

ps -e

または

ps -A

を使って、全てのプロセスを確認できる。
※オプション無しだとbashとpsのプロセスが表示された。

プロセスの詳細を確認するときはオプションにfを付ける。

ps -A -f

指定したユーザー名のプロセスを表示する。

ps -u <ユーザー名>

ユーザー一覧は/etc/passwdの中に入っている。
ユーザー一覧を取り出したいとき、/etc/passwdをそのままcatで見ようとすると読みづらいので、以下のコマンドで表示する。

cat /etc/passwd | sed -e 's/:.*//g'

Nginxに関するプロセス名を調べるときは、grepから文字列nginxを検索する。

ps -ef | grep nginx

「|」はパイプ。複数のコマンドと組み合わせられる。

パイプを複数使って、AND検索で調べることも可能。

ps -e | grep da | grep 2

OR検索も可能。

ps -e | grep "da\|2"

masterとworker

以下のコマンドでNginxのプロセスを確認すると、「nginx: master process」や「nginx: worker process」とのようmasterとworkerで分かれていた。

ps -ef | grep nginx

masterはrootで起動し、動作する。workerは一般ユーザー(「nginx」や「www」)で起動し、動作する。
masterとworkerは異なる役割を持っている。

master

masterは設定ファイルを読み込み、ネットワークの通信に使うソケットの待ち受けを設定して、workerを起動し、監視する。

worker

workerはネットワーク処理のイベントループを処理し、masterが待ち受けを設定したソケットを使って接続を受け付け、ネットワークI/OやファイルI/Oを実施する。
HTTPやSSL/LTSのプロトコル処理をするのもworkerの仕事。