フロントエンドのお仕事をすることになりそうなので、お勉強もかねてnginxをインストールしてみることにします。
nginxとは
nginxは、Webサーバ、リバースプロキシー、キャッシュ、ロードバランサ、メディアストリーミングといった機能を持っています。 C10K問題の解決のために開発され、イベント駆動型で、非同期アーキテクチャにより、高いパフォーマンスでの動作が可能です。
インストールする
今回は、yumではなくrpmを使ってインストールします。
CentOS7にインストールするため、下記のページからインストールするrpmをダウンロードします。
今回は、最新版の1.16.1をインストールすることにします。
インストール先の環境は、CentOS7です。
$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
では、rpmをダウンロードしてインストールします。
$ sudo wget https://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm $ sudo rpm -ivh nginx-1.16.1-1.el7.ngx.x86_64.rpm $ nginx -v nginx version: nginx/1.16.1
rpmでインストールできるので、簡単ですね。
nginxを起動してみる
nginxを起動してみます。
$ sudo nginx
プロセスを確認すると、masterとworkerがいます。
$ ps aux | grep nginx root 7011 0.0 0.1 46444 976 ? Ss 13:34 0:00 nginx: master process nginx nginx 7012 0.0 0.3 46856 1928 ? S 13:34 0:00 nginx: worker process
masterとworker
nginxは、masterプロセスと複数のworkerプロセスを持っています。
キャッシュを有効にしている場合は、cache loaderとcache managerプロセスも起動時に一緒に立ち上がります。
masterプロセスは、主にコンフィグファイルの読み込みと検査、workerプロセスの管理をします。
workerプロセスは、HTTPリクエストに対する処理を行います。
workerプロセスの数は、nginx.confのworker_processesで固定の数を設定するか、利用可能なCPUコア数に合わせて自動的に調整するように設定することが可能です。
nginx.conf を確認すると1 となっていました。
user nginx; worker_processes 1;
試しに、worker_processesの値を2に変更しリロードしてみると、workerプロセスが2 個になりました。
root 7011 0.0 0.3 46520 1972 ? Ss 13:34 0:00 nginx: master process nginx nginx 7585 0.0 0.4 46984 2064 ? S 14:45 0:00 nginx: worker process nginx 7586 0.0 0.4 46984 2064 ? S 14:45 0:00 nginx: worker process
nginxを停止するには
nginxを停止するには、nginx -s quit
で停止します。
nginx -s
SIGNAL | 説明 |
---|---|
quit | シャットダウン |
reload | 設定ファイルのリロード |
reopen | ログファイルの再オープン |
stop | 強制終了 |
Webサーバの設定は?
Webサーバの設定は、/etc/nginx/conf.d/default.conf
に定義されています。
http://サーバのIPアドレス:80 または、http://localhost:80 にブラウザからアクセスすれば
「Welcom to nginx!」が表示されるはずです。
Webサーバの定義は、httpコンテキストにserverディレクティブを追加します。
インストールした直後は、/etc/nginx/nginx.conf
のhttpコンテキストのincludeディレクティブに定義されたパスのコンフィグファイルが組み込まれることで、80ポートでページが表示されます。
include /etc/nginx/conf.d/*.conf;
Webサーバに関する設定は、マニュアルを見れば良さそうです。
最後に
設定ファイルに関して、apacheよりも定義が分かりやすいのかなと感じました。 まだ、業務では使ったことがないので、使い出して分からないことが出てきたら調べて、またブログに書こうと思います。