SlideShare a Scribd company logo
軽量高機能webサーバーnginxTakayuki Hirayama1Copyright 2010  Fractalist inc. All rights reserved.
概要nginx「エンジンエックス」と読む軽量、高機能webサーバー2010年2月現在第4位のシェア採用実績Wordpress(http://wordpress.com/)GitHub(http://github.com/)SourceForge(http://sourceforge.net/)2Copyright 2010  Fractalist inc. All rights reserved.出典:http://news.netcraft.com/
Apacheじゃダメなの?高機能=リソース消費例:消費メモリApache 数十KB~/プロセスリクエストの数だけプロセス発生(preforkの場合)nginx数KB~/プロセス1ワーカーあたり複数リクエストを捌ける(一般的にCPU orCPUコア数=ワーカー数)C10K問題接続数 10K=10,000 というのが今後日常化していくAjaxなどの技術1リクエスト1プロセス/スレッドモデルとかだと耐えられなくなる特に、リバースプロキシーサーバーなどnginxの場合、1ワーカーで数千単位のリクエストを並列処理できる3Copyright 2010  Fractalist inc. All rights reserved.
多彩な機能4Copyright 2010  Fractalist inc. All rights reserved.標準モジュールアクセス制御認証バーチャルホストHTTPプロキシRequest Rewritingロードバランシングリソース制限ログフォーマットカスタマイズFastCGIGzip圧縮フィルタServer Side Includememcached連携コンテンツキャッシュ追加モジュールHTTPS/SSLコンテンツフィルタWebDAVサーバーステータスレポートFLVストリーミングサードパーティモジュールPAM認証MP4ストリーミングWSGIZIP圧縮
リバースプロキシとして利用する5Copyright 2010  Fractalist inc. All rights reserved.http {    upstream backend {       server 192.168.0.1:8080; weight=20; # 2倍バランスserver 192.168.0.2:8080; weight=10;server 192.168.0.3:8080; weight=10;    }   server {       location 80;server_name example.jp;        location / {proxy_pass http://app;       }   }}リバースプロキシ192.168.0.1192.168.0.2192.168.0.3
アプリケーションサーバーとして利用する拡張する方法はいくつかCGIFastCGIWSGI組み込みPerlモジュール(C言語)6Copyright 2010  Fractalist inc. All rights reserved.
組み込みPerl7Copyright 2010  Fractalist inc. All rights reserved.Apache mod_perlと遜色ない容易さで書ける設定ファイルPerlモジュールhttp {perl_modules/somewhere/lib;perl_requireNginxTest;   server {       location 80;server_name example.jp;        location / {perlNginxTest::handler;}   }}package NginxTest;use nginx;sub handler {    my $r = shift;    $r->send_http_header;    $r->print("nginx by embedded perl");    return OK;}1;
組み込みPerlの弱点8Copyright 2010  Fractalist inc. All rights reserved.処理がシングルスレッドになる!なのでmod_perlと比べても優位性は少ない・・I/Oブロックなど発生する処理には向かない但し、$r->sleep() で他リクエスト処理スレッドにyieldすることができるpackage NginxTest;use nginx;sub handler {    my $r = shift;   $a = rand(100);   $r->variable(randval => $a);   $r->sleep(50 => \&send_response);   return OK;}sub send_response {   my $r = shift;    $r->send_http_header(‘text/plain’);   $r->print(“hello, world!\n”);   return OK;}1;
nginxモジュール(C言語)9Copyright 2010  Fractalist inc. All rights reserved.長所nginx本体の並列処理の機能に載っかれる専用ライブラリが整備されてるApacheモジュールのようなリソースプールリスト、配列や正規表現、mutex排他制御などのライブラリが揃ってる短所ドキュメントが少ないEmiller's Guide To Nginx Module Developmenthttp://www.evanmiller.org/nginx-modules-guide.htmlApacheのようなDSO構造ではないので、毎回本体と一緒にビルドする必要がある(意図的?)
まとめ10Copyright 2010  Fractalist inc. All rights reserved.まとめApache以外にもHTTPサーバーはいろいろあるよ特に最近は1スレッドで多数リクエスト捌く系のサーバーが大流行り(libeventなどイベントループを利用など)その他最近の高速系サーバーVarnishSquidの後継とも言われる高速リバースプロキシhttp://www.varnish-cache.org/Starman高速PSGI互換Webサーバーhttp://search.cpan.org/dist/Starman/

More Related Content

PDF
OpenStack Kuryrについて
PDF
Bossan dentoo
PDF
DockerからKubernetesへのシフト
PPTX
社内勉強会(Docker)
PDF
InfiniBand on Debian
PPTX
ConoHaオブジェクトストレージ 利用ケース
PPTX
ELK ではじめる自宅ネットワーク監視
PDF
DevStackで始めるCloud FoundryとBOSH
OpenStack Kuryrについて
Bossan dentoo
DockerからKubernetesへのシフト
社内勉強会(Docker)
InfiniBand on Debian
ConoHaオブジェクトストレージ 利用ケース
ELK ではじめる自宅ネットワーク監視
DevStackで始めるCloud FoundryとBOSH

What's hot (20)

PDF
DockerとKubernetesが作る未来
PPTX
パブリッククラウドConoHaを使ってOpenStack APIを理解する
PDF
Wowzaを用いた配信基盤 Takusuta tech conf01
PDF
Dockerの改修を一緒にやりませんか
PDF
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
PDF
Using LXC on Production
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
PDF
Kubernetesを触ってみた
PDF
re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020
PPTX
Kubernetes超入門 with java
PDF
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
PDF
いろいろなデバイスでOpenVNetを動かしてみようとした。
PPTX
GUI&基本操作、CLI編
PDF
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
PPTX
Containerで変わるDevOps
PDF
シーサーでのInfiniBand導入事例
PPTX
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
DOC
Cloud founryインストール手順
PDF
kubernetes(GKE)環境におけるdatadog利用
PPTX
Cloud Foundry varz
DockerとKubernetesが作る未来
パブリッククラウドConoHaを使ってOpenStack APIを理解する
Wowzaを用いた配信基盤 Takusuta tech conf01
Dockerの改修を一緒にやりませんか
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
Using LXC on Production
Seastar in 歌舞伎座.tech#8「C++初心者会」
Kubernetesを触ってみた
re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020
Kubernetes超入門 with java
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
いろいろなデバイスでOpenVNetを動かしてみようとした。
GUI&基本操作、CLI編
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Containerで変わるDevOps
シーサーでのInfiniBand導入事例
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Cloud founryインストール手順
kubernetes(GKE)環境におけるdatadog利用
Cloud Foundry varz
Ad

Viewers also liked (19)

PPT
Q4 Mでメッセージキュー
PPT
素敵なjavascript ~google chrome編~
PPT
Yii紹介
PPT
20091119_sinatraを使ってみた
PDF
The Royal Lagoon Bhubaneswar
PPTX
SvnからGitへの移行について
PPT
RubyとPost Gis
PPTX
muninで簡単&自在サーバーモニタリング
PPT
Git紹介~入門編~
PPTX
フラクタリスト技術知識共有会発表資料 090903
PPT
Html5 入門編 その2
PPT
素敵なjavascript ~Firefox編 ~
PPT
正規表現のススメ_20091217
PPT
Tokyo Cabinet
PPT
Mixiアプリで体験する Open Social
PPTX
Zshって最強らしい
KEY
Perl 非同期プログラミング
PDF
しょぼいプレゼンをパワポのせいにするな! by @jessedee
PDF
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
Q4 Mでメッセージキュー
素敵なjavascript ~google chrome編~
Yii紹介
20091119_sinatraを使ってみた
The Royal Lagoon Bhubaneswar
SvnからGitへの移行について
RubyとPost Gis
muninで簡単&自在サーバーモニタリング
Git紹介~入門編~
フラクタリスト技術知識共有会発表資料 090903
Html5 入門編 その2
素敵なjavascript ~Firefox編 ~
正規表現のススメ_20091217
Tokyo Cabinet
Mixiアプリで体験する Open Social
Zshって最強らしい
Perl 非同期プログラミング
しょぼいプレゼンをパワポのせいにするな! by @jessedee
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
Ad

Similar to 軽量高機能webサーバーnginx (20)

PDF
Webサーバ勉強会#4
PDF
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
PDF
nginxの紹介
PPTX
Nginx勉強会
PPTX
EC2でNginxを使ってみよう JAWS大阪第9回勉強会資料
PPTX
第2回勉強会資料 岩本(配布用)
PDF
PPTX
NGINX Plus Hands On Training
PDF
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
PDF
ngx_http_groonga - 全文検索nginx
PPTX
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
PDF
NGINX製品の最新機能アップデート情報
PPTX
Introducing NGINX App Protect (Japanese Webinar)
PPTX
簡単なHTTPサーバの作成
PDF
WordBench千葉「レベル別Nginx活用法」
PDF
NGINX Instance Manager Tames the Sprawl (Japanese version)
PPTX
NGINX + Ansible Automation Webinar (日本語版)
KEY
PHP-Ninjaの裏側
PDF
Openresty
Webサーバ勉強会#4
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
nginxの紹介
Nginx勉強会
EC2でNginxを使ってみよう JAWS大阪第9回勉強会資料
第2回勉強会資料 岩本(配布用)
NGINX Plus Hands On Training
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
ngx_http_groonga - 全文検索nginx
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
NGINX製品の最新機能アップデート情報
Introducing NGINX App Protect (Japanese Webinar)
簡単なHTTPサーバの作成
WordBench千葉「レベル別Nginx活用法」
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX + Ansible Automation Webinar (日本語版)
PHP-Ninjaの裏側
Openresty

軽量高機能webサーバーnginx