SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション

SUSE15 で動かす nginx HTTP サーバー

 かつては WEB Lamp, Linux + Apache + PHP だったのですが、最近 nginx で動いている(エラーページでわかる)をよく見る様になりました。何をいまさら感ですが、遅まきながら nginx on SUSE15 の環境を作ってみました。
PR

- nginx とは

 nginx(エンジンエックス、エヌジンエックス)は 軽量な HTTP サーバーアプリケーションで、最近は多くのVPSプロバイダや、アクセスが多いサイトで急激に利用されており、ほぼ apache と人気を二分しています。

- nginx が伸びている背景

nginx が急速にシェアを伸ばしている背景として、昔から指摘されてきた apache の "C10K問題"があります。

Web2.0の先にあるC10K問題

 簡単に言うと(簡単じゃないけど)マルチプロセスで動作する apache はセッションごとにプロセス番号 (PID) が割り当てられるのですが、PIDは 32,767 個しかありません。バックグラウンドでプロセスを消費する複雑な処理では、いくつものプロセスとメモリが使われるため、リソースを食いつくしてしまいます。

opensuse151:~ # cat /proc/sys/kernel/pid_max
32768
opensuse151:~ #

という事で、apache では最大 10,000 セッションを境に急激にパフォーマンスが低下するという問題が指摘されてきました。

実際、apache を起動するだけで、7~8のプロセスが動作しています。パラレル動作に強い Apache という事でしょうか。

- nginx はイベント駆動

マルチプロセスの apache に対して、イベント駆動型の nginx は、仕組みが単純で少ないメモリ、プロセスでリクエストを処理できる、というメリットがあります。

 反面、apache の様な複雑な処理のように、イベントが長時間占有するリクエストは不得意です。そこで固定コンテンツが多い単純なウェブサイトには向いていますが、ストリーミングや MySQL などとの同居には向いていないようです。

むしろアプリケーションサーバをバックエンドにして nginx をフロントエンドに分けて使う事が多い様です。たまに 503エラーを吐いているサイトがありますが、これはバックエンドで問題を起こしているのでしょう。

Apache と比較するとシリアル処理に強いという感じですか。

- SUSE 15(SLE/openSUSE Leap)における nginx

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 の最大の問題かも知れません。

SUSEでは apache の設定は、ほぼ YaSTでできる
SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16455579.png

- YaSTで nginx をインストール

# yast (テキスト版) もしくは # yast2 (GUI版) で Software Management > "nginx" をサーチしてチェックマークを入れてインストールします。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16475503.png

次に、 Service Manager から nginx を start して、 起動モードを on boot にトグルします。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16482858.png

/srv/www/htdocs に index.html を作成して、ブラウザからアクセスできたら、とりあえずOKです。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16485559.png


TOAMIT 東亜産業 ハンドジェル アルコール配合 洗浄タイプ

 日本製 500ml 3本セット

新品価格¥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 の教科書は必要ですね。





by islandcenter | 2020-04-06 16:58 | SUSE | Comments(0)