狠狠撸

狠狠撸Share a Scribd company logo
奥别产サーバ勉强会
     #4

  Nginxの仕組みと他のサーバ
(事情によりApacheだけ)との違い



                  1
自己绍介

         ? id:oranie
          ? @oranie
? 緑色のグループ会社で、グループ内でも余り知られてい
  ないシステムでなんか色々やる簡単なお仕事しています
  。


? 緑色のみんながよく知っているサービスの裏側とかは全く
  知らないですw


                       2
狈驳颈苍虫とは何?

信頼のWikipediaより→



nginx(「エンジンエックス」と発音) は、軽量かつ高性能なWeb
   サーバ/リバースプロキシ、
電子メール(IMAP/POP3)プロキシである。BSD-likeライセンス
   でリリースされている。




                              3
狈驳颈苍虫とは何?

                       概要
Nginxは、システムリソースを効率的に使いながら、
静的コンテンツを敏速に配信できる。
標準でFastCGI, uWSGIなどに対応しているので、
動的なHTTPコンテンツをデプロイすることもできる。
有能なソフトウェアロードバランサとして使用することもできる。

Nginxは、リクエストの処理に非同期のイベント駆動アプローチを用いている
。これは、負荷下において、より予測可能なパフォーマンスを提供する。
これに対して、Apache HTTP Serverでは、スレッドやプロセス指向の
アプローチを用いている。


                              4
非同期のイベント駆動アプローチとは?

静的ファイルを例に:
通常Apache等ではワーカプロセスやスレッドは同期IOを用いている為
リクエストを受信して、静的ファイルリソース読んでレスポンス返して???
という一連の流れを完了するまで、次のリクエストは処理出来ない

これに対してNginxでは非同期I/Oを用いたイベントモデルでの処理を
行っているため、ワーカープロセスが同時に複数のリクエストを処理出来る
  。


この辺は長いので端折るので、会場にいる詳しい人後で補足プリーズ!




                            5
Nginxに向いている事



?大量のリクエストをさばくWebサーバの構築

?リバースプロキシを用いたキャッシュされたコンテンツの配布

?綺麗なconfig書きたいという欲求を満たす
→config内のrewriteでif文が使える!!分かりやすい!
詳細はconfig説明で!


                            6
狈驳颈苍虫に向いていない事
              Apacheと比べて出来無い事など


?後からモジュールを動的にロードさせる事が出来ない。必要な
  モジュールは初めにコンパイルが必要。
?Apacheと比べるとまだまだシェアは低いので、コミュニティやド
  キュメントの充実さが弱い

?URL書き換えルールなどの互換性がApacheと無い
?Apacheと比べるとモジュールが少ない
※でも普通に使うレベルの物はこの辺見るとhttp://wiki.nginx.org/ModulesJa
ほぼあると思いますよ




                                                7
狈驳颈苍虫に向いていない事
        Apacheと比べて出来無い事など


一部ApacheにはあるがNginxに無い機能があるので、それを利
 用したWebサーバの移行
→?FastCGIしか動かないため、CGI(笑)はNG

.htaccess(笑)による柔軟な設定(笑)をした
高度なWebサーバ(笑)をNginxに移行する

※同等の事は実現しようと思えば出来ますが、
Nginxのcongfigの良さが失われる+トラブルの原因に。

                             8
Nginxへ移行する際に考慮したいこと

参照:
http://blog.av-jyo.com/2011-07/first-steps-for-switching-
   from-apache-to-nginx.html
(AV女優.com開発blogさんより)
http://blog.a2o.si/2009/06/24/apache-mod_php-compared-to-ngin
(開発blogさんが引用したソース)




                                           9
性能などについて




さっきの引用元のサイトを軽く解説




               10
Nginxへ移行する際に考慮したいこと



たくさんの.htaccessファイル か、あるいは、 たくさんのApache
 サーバ を所有しているのなら、Nginxに移行するべきではな
 いでしょう。これらの設定ファイルを全て、Nginx形式に書き換
 えるコストよりも、新しいサーバを買うコストの方が安いでしょ
 うね。




                            11
Nginxへ移行する際に考慮したいこと



?もし、単体のアプリケーションを複数のサーバで配信していて
  、しかも、 その大半が静的ファイルでない場合 、Nginxに移
  行するべきではないでしょう。

?逆に、 配信するファイルの大半が、静的ファイルである場合 、
  Nginxに移行するべきでしょう。




                         12
Nginxへ移行する際に考慮したいこと

?新たなウェブホスティングサービスを立ち上げる場合、Nginxに
  移行するべきでしょう。
ただし、利用するユーザが .htaccessを必要としない場合に 。

?仮想サーバ上でウェブサービスを運用する場合 、Nginxに移
  行するべきでしょう。
Nginxが利用するメモリが、Apacheよりも少ないためです。




                         13
Nginxへ移行する際に考慮したいこと

?もし、PHPアプリケーションのパフォーマンスが悪いため
  に、Nginxの切り替えを考えているなら、



      ウェブサーバでなく、
    まずは アプリケーション自体を
       見直しましょう 。


                       14
Nginxを利用する前提で

ApacheとNginxの併用は可能なので、Nginxに無い機能をどうしても使いたい
  とか今までのApacheから大人の事情で急にリプレイス出来ないのであれ
  ば併用するとか


エンドユーザーからのリクエストをまずNginxで受けて、そこからリバースプロ
  キシでApacheに投げるようにするとか。


まあ、大半の事は出来るので後はその時の技術的な設定、サイトの特性な
 どで検討するのが良いと思います。


性能は実際にテストするのが、悩むより遙かに建設的です。



                               15
狈驳颈苍虫を使うために実际に何やればいいの?




    次の人、発表お願いします!!




                     16

More Related Content

奥别产サーバ勉强会#4