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の仕事。
いちばんめのサーバー構築の流れ
-
1-1 初期設定
-
1-2 新規ユーザー(一般ユーザー)の作成と設定
-
1-3 Nginx導入とhttpの準備
-
1-4 Nginxの初期設定
-
1-5 php導入
-
1-6 Apache導入と初期設定
-
1-7 リバースプロキシを準備する前の事前知識
-
1-8 サーバーIPアドレスとドメイン(ワイルドカード指定)の設定
-
1-9 ドメイン個別設定とリバースプロキシ構築
-
1-10 Let’s Encrypt(Certbot)を使ったSSL/TLS証明書の発行と自動更新設定
-
1-11 MySQL導入
-
1-12 MySQLのパフォーマンスチューニング
-
1-13 MySQLへのログインと初期設定
-
1-14 MySQLからDB・ユーザーの準備/ユーザーの権限設定
-
1-15 Zabbix導入
-
1-16 (寄り道)Zabbixのアップグレード
-
1-17 PHPの詳細設定
-
1-18 WP-CLIとWordPressの導入