2020年 04月 06日
SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション

nginx(エンジンエックス、エヌジンエックス)は 軽量な HTTP サーバーアプリケーションで、最近は多くのVPSプロバイダや、アクセスが多いサイトで急激に利用されており、ほぼ apache と人気を二分しています。
nginx が急速にシェアを伸ばしている背景として、昔から指摘されてきた apache の "C10K問題"があります。Web2.0の先にあるC10K問題簡単に言うと(簡単じゃないけど)マルチプロセスで動作する apache はセッションごとにプロセス番号 (PID) が割り当てられるのですが、PIDは 32,767 個しかありません。バックグラウンドでプロセスを消費する複雑な処理では、いくつものプロセスとメモリが使われるため、リソースを食いつくしてしまいます。
opensuse151:~ # cat /proc/sys/kernel/pid_max32768opensuse151:~ #
という事で、apache では最大 10,000 セッションを境に急激にパフォーマンスが低下するという問題が指摘されてきました。実際、apache を起動するだけで、7~8のプロセスが動作しています。パラレル動作に強い Apache という事でしょうか。
マルチプロセスの apache に対して、イベント駆動型の nginx は、仕組みが単純で少ないメモリ、プロセスでリクエストを処理できる、というメリットがあります。反面、apache の様な複雑な処理のように、イベントが長時間占有するリクエストは不得意です。そこで固定コンテンツが多い単純なウェブサイトには向いていますが、ストリーミングや MySQL などとの同居には向いていないようです。むしろアプリケーションサーバをバックエンドにして nginx をフロントエンドに分けて使う事が多い様です。たまに 503エラーを吐いているサイトがありますが、これはバックエンドで問題を起こしているのでしょう。Apache と比較するとシリアル処理に強いという感じですか。
SUSE 15 では nginx はリポジトリに含まれているので、YaST なり zypper で簡単にインストールできます。もしなければ opensuse.org より1クリックインストールできる様です。
nginx - A HTTP server and IMAP/POP3 proxy server (1 Click install)SUSE で 1 Click インストールができない場合、YaSTにないメニューを追加YaST (yast2) による SUSE Linux のパッケージ管理, インストールと削除
ただし、apache と違って、nginx は YaST に統合されていないため、手動で細かな設定をしなければなりません。オペレーティングシステムをインストールする際に、オプションとして同時にインストールできます。情報の少なさ、運用者の経験不足というのが nginx の最大の問題かも知れません。

# yast (テキスト版) もしくは # yast2 (GUI版) で Software Management > "nginx" をサーチしてチェックマークを入れてインストールします。 次に、 Service Manager から nginx を start して、 起動モードを on boot にトグルします。 /srv/www/htdocs に index.html を作成して、ブラウザからアクセスできたら、とりあえずOKです。
TOAMIT 東亜産業 ハンドジェル アルコール配合 洗浄タイプ
新品価格¥4,980から(2020/4/7 13:03時点)
新品価格¥399から(2020/4/7 12:01時点)
SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx
まずは 「Linux で HTTP サーバを」と考えた場合、 nginx は軽量でインストールも簡単で良い選択でしょう。SUSE の場合 Just enough OS (JeOS)版に入れて、フロントエンドに多用してみるのも良いでしょう。ただ、奥深く追いかけてみると apache の様な「決め技」が中々見つからずに苦労します。nginx + WordPress とか、apache とのロードバランス化した平行運用など、色々応用が利く様です。やっぱり nginx の教科書は必要ですね。
| |