Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takashi Takizawa
PDF, PPTX
86,044 views
nginxの紹介
第10回静岡ITPro勉強会インフラ部 「nginxの紹介」資料
Technology
◦
Read more
118
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 58
2
/ 58
3
/ 58
4
/ 58
5
/ 58
6
/ 58
7
/ 58
8
/ 58
9
/ 58
Most read
10
/ 58
11
/ 58
12
/ 58
13
/ 58
14
/ 58
15
/ 58
16
/ 58
17
/ 58
18
/ 58
19
/ 58
20
/ 58
21
/ 58
22
/ 58
23
/ 58
24
/ 58
25
/ 58
26
/ 58
27
/ 58
28
/ 58
29
/ 58
30
/ 58
31
/ 58
32
/ 58
33
/ 58
34
/ 58
35
/ 58
36
/ 58
37
/ 58
38
/ 58
39
/ 58
40
/ 58
41
/ 58
42
/ 58
43
/ 58
44
/ 58
45
/ 58
46
/ 58
47
/ 58
48
/ 58
49
/ 58
50
/ 58
51
/ 58
52
/ 58
53
/ 58
54
/ 58
55
/ 58
56
/ 58
57
/ 58
58
/ 58
More Related Content
PPTX
Nginx勉強会
by
Yuji Otani
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
by
Takahiko Ito
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
PPT
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
Nginx勉強会
by
Yuji Otani
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
by
Takahiko Ito
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
What's hot
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PPTX
グラフデータベース入門
by
Masaya Dake
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
by
Shuto Suzuki
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
by
Trainocate Japan, Ltd.
PPT
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
PDF
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
PDF
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
PPTX
GraphQLのsubscriptionで出来ること
by
Shingo Fukui
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PDF
今さらだけどMySQLとライセンス
by
Hidenori Ishii
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
Where狙いのキー、order by狙いのキー
by
yoku0825
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
Redisの特徴と活用方法について
by
Yuji Otani
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
グラフデータベース入門
by
Masaya Dake
Cognitive Complexity でコードの複雑さを定量的に計測しよう
by
Shuto Suzuki
Docker Compose 徹底解説
by
Masahito Zembutsu
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
by
Trainocate Japan, Ltd.
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
GraphQLのsubscriptionで出来ること
by
Shingo Fukui
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
今さらだけどMySQLとライセンス
by
Hidenori Ishii
Dockerからcontainerdへの移行
by
Kohei Tokunaga
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
Viewers also liked
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PPTX
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
by
Persistent Systems Ltd.
PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
by
Masahiro Nagano
PDF
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
by
Ryosuke Uchitate
PPTX
サーバサイド Kotlin
by
Hiroki Ohtani
PPTX
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
PDF
JJUG初心者のためのJava/JJUG講座
by
Yusuke Suzuki
PPTX
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
by
Carol Smith
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
by
Persistent Systems Ltd.
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
by
Masahiro Nagano
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
by
Ryosuke Uchitate
サーバサイド Kotlin
by
Hiroki Ohtani
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
JJUG初心者のためのJava/JJUG講座
by
Yusuke Suzuki
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
by
Carol Smith
Similar to nginxの紹介
PDF
nginx入門
by
Takashi Takizawa
PDF
Webサーバ勉強会#4
by
oranie Narut
PDF
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
by
NGINX, Inc.
PPTX
第2回勉強会資料 岩本(配布用)
by
Takahisa Iwamoto
PDF
Nginx
by
Soichi Takamura
PPTX
EC2でNginxを使ってみよう JAWS大阪第9回勉強会資料
by
Masahiro Haraoka
PPTX
軽量高機能webサーバーnginx
by
ngi group.
PDF
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
by
NGINX, Inc.
PPTX
簡単なHTTPサーバの作成
by
Panu Avakul
PDF
Ad stirの裏側
by
Seiji Ochiai
PDF
WordBench千葉「レベル別Nginx活用法」
by
Endoh Shingo
PDF
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
by
shinyatsukasaki
PDF
NGINX製品の最新機能アップデート情報
by
NGINX, Inc.
PDF
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
by
NGINX, Inc.
PDF
Openresty
by
ogawatti
PPTX
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
by
Murata Tatsuhiro
PPTX
NGINX + Ansible Automation Webinar (日本語版)
by
NGINX, Inc.
PPTX
Nginx
by
Yoshikazu Torimoto
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
PPTX
20120821 pronet study
by
Six Apart
nginx入門
by
Takashi Takizawa
Webサーバ勉強会#4
by
oranie Narut
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
by
NGINX, Inc.
第2回勉強会資料 岩本(配布用)
by
Takahisa Iwamoto
Nginx
by
Soichi Takamura
EC2でNginxを使ってみよう JAWS大阪第9回勉強会資料
by
Masahiro Haraoka
軽量高機能webサーバーnginx
by
ngi group.
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
by
NGINX, Inc.
簡単なHTTPサーバの作成
by
Panu Avakul
Ad stirの裏側
by
Seiji Ochiai
WordBench千葉「レベル別Nginx活用法」
by
Endoh Shingo
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
by
shinyatsukasaki
NGINX製品の最新機能アップデート情報
by
NGINX, Inc.
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
by
NGINX, Inc.
Openresty
by
ogawatti
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
by
Murata Tatsuhiro
NGINX + Ansible Automation Webinar (日本語版)
by
NGINX, Inc.
Nginx
by
Yoshikazu Torimoto
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
20120821 pronet study
by
Six Apart
More from Takashi Takizawa
PPTX
DNS RFCの歩き方(短縮版)
by
Takashi Takizawa
PDF
サバフェス! 2015 Spring LT資料
by
Takashi Takizawa
PPTX
BIND of Summer (2017-04-13)
by
Takashi Takizawa
PDF
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
by
Takashi Takizawa
PDF
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
by
Takashi Takizawa
PDF
RFCについての復習
by
Takashi Takizawa
PDF
DNS RFC系統図
by
Takashi Takizawa
PDF
DNSのRFCの歩き方
by
Takashi Takizawa
PPTX
initとプロセス再起動
by
Takashi Takizawa
PDF
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
PDF
#mailerstudy 02 暗号入門 (2012-02-22更新)
by
Takashi Takizawa
PDF
#logstudy 01 rsyslog入門
by
Takashi Takizawa
PDF
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
by
Takashi Takizawa
PDF
Unboundの最適化(OSC2011 Tokyo/Spring)
by
Takashi Takizawa
PDF
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
by
Takashi Takizawa
PDF
#mailerstudy 01 LT POP/IMAP入門
by
Takashi Takizawa
PDF
#dnstudy 01 ドメイン名の歴史
by
Takashi Takizawa
PDF
DNS再入門
by
Takashi Takizawa
PDF
#dnstudy 01 Unboundの紹介
by
Takashi Takizawa
PPTX
hbstudy20100821 SpamAssassin
by
Takashi Takizawa
DNS RFCの歩き方(短縮版)
by
Takashi Takizawa
サバフェス! 2015 Spring LT資料
by
Takashi Takizawa
BIND of Summer (2017-04-13)
by
Takashi Takizawa
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
by
Takashi Takizawa
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
by
Takashi Takizawa
RFCについての復習
by
Takashi Takizawa
DNS RFC系統図
by
Takashi Takizawa
DNSのRFCの歩き方
by
Takashi Takizawa
initとプロセス再起動
by
Takashi Takizawa
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
#mailerstudy 02 暗号入門 (2012-02-22更新)
by
Takashi Takizawa
#logstudy 01 rsyslog入門
by
Takashi Takizawa
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
by
Takashi Takizawa
Unboundの最適化(OSC2011 Tokyo/Spring)
by
Takashi Takizawa
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
by
Takashi Takizawa
#mailerstudy 01 LT POP/IMAP入門
by
Takashi Takizawa
#dnstudy 01 ドメイン名の歴史
by
Takashi Takizawa
DNS再入門
by
Takashi Takizawa
#dnstudy 01 Unboundの紹介
by
Takashi Takizawa
hbstudy20100821 SpamAssassin
by
Takashi Takizawa
nginxの紹介
1.
第10回 静岡ITPro勉強会 インフラ部 nginxの紹介 滝澤
隆史 株式会社ハートビーツ MSP事業部 所属 http://heartbeats.jp/ 1 2013-‐‑‒05-‐‑‒18nginxの紹介
2.
私は誰 • ⽒氏名: 滝澤
隆史 @ttkzw • 所属: 株式会社ハートビーツ ▫ サーバの構築・運⽤用や 24時間365⽇日の有⼈人監視をやっている会社 ▫ いわゆるMSP(マネージド サービス プロバイ ダ) • nginxとの関わり ▫ 所属会社の技術ブログ「nginx連載」 – http://heartbeats.jp/hbblog/nginx/ ▫ Software Design 2012年年12⽉月号 第2特集「⾼高速・⾼高機能HTTPサーバ Nginx構築・ 設定マニュアル」 2 2013-‐‑‒05-‐‑‒18nginxの紹介
3.
アジェンダ • nginxとは何か • nginxで何ができるか •
apacheとは何が違うか 3 2013-‐‑‒05-‐‑‒18nginxの紹介
4.
本⽇日の勉強会の進め⽅方 • セミナーではなく勉強会です。 • 随時質問を受け付けます。 •
質問がある⽅方は挙⼿手をお願いします。 2013-‐‑‒05-‐‑‒18nginxの紹介 4
5.
5 2013-‐‑‒05-‐‑‒18nginxの紹介
6.
nginxとは何か • このセッションで学んでもらうこと ▫ nginxは何て読むのか? ▫
nginxとは何か? ▫ nginxは誰が作っているのか? ▫ nginxは誰が使っているのか? ▫ なぜnginxを使うのか? 2013-‐‑‒05-‐‑‒18nginxの紹介 6
7.
nginxは何て読むのか? • 正直なところ、素直に読めないですよね 2013-‐‑‒05-‐‑‒18nginxの紹介 7
8.
nginxは何て読むのか? • 正直なところ、素直に読めないですよね • 「んぎんくす」? ▫
Googleせんせーに尋ねると 「約 382,000 件」←関係ないのが混在 2013-‐‑‒05-‐‑‒18nginxの紹介 8
9.
nginxは何て読むのか? • 正直なところ、素直に読めないですよね • 「んぎんくす」? ▫
Googleせんせーに尋ねると 「約 382,000 件」←関係ないのが混在 • 「エンジン エックス」(engine x) 2013-‐‑‒05-‐‑‒18nginxの紹介 9
10.
nginxって何? • Webサーバ • リバース
プロキシ サーバ • メール プロキシ サーバ 2013-‐‑‒05-‐‑‒18nginxの紹介 10
11.
nginxは誰が作っているのか? • イーゴリ・シソーエフ(Igor Sysoev)⽒氏 (ロシア) ▫
2002年年に開発開始 ▫ 2004年年に公開 2013-‐‑‒05-‐‑‒18nginxの紹介 11
12.
nginxは誰が作っているのか? • イーゴリ・シソーエフ(Igor Sysoev)⽒氏 (ロシア) ▫
2002年年に開発開始 ▫ 2004年年に公開 • Nginx, Inc. ▫ 2011年年7⽉月Nginx, Inc.設⽴立立 – nginxの開発、商⽤用サポート、コンサルティ ングを⾏行行う法⼈人 – イゴーリ・シソーエフ⽒氏は主席アーキテクト 兼CTO 2013-‐‑‒05-‐‑‒18nginxの紹介 12
13.
nginxは誰が作っているのか? • 開発者はロシアの⼈人! • 2年年くらい前までの公式⽂文書の充実度度 ▫
ロシア語>英語 ▫ Wiki(http://wiki.nginx.org/)を⾒見見るか、 Googleせんせーに翻訳してもらうかするしか なかった。 • NGINX, Inc.設⽴立立以降降は英語の公式⽂文書が充実 2013-‐‑‒05-‐‑‒18nginxの紹介 13
14.
nginxのバージョン • 最新版(2013年年5⽉月18⽇日時点) ▫ 開発版(Development): – 1.5.0 ▫
安定版(Stable): – 1.4.1 ▫ 以前の安定版(Legacy): – 1.2.9 – 1.0.15 – 0.8.55 2013-‐‑‒05-‐‑‒18nginxの紹介 14
15.
nginxのバージョン • バージョンの形式 (0.9.0〜~) ▫
X.Y.Z – X.Yはメジャーリリースバージョン – Yが偶数: 安定バージョン – Yが奇数: 開発バージョン – Zはマイナーリリースバージョン – バグフィックス – 開発版からのバックポートによる機能追加 2013-‐‑‒05-‐‑‒18nginxの紹介 15
16.
nginxのバージョン • 過去の安定版リリース ▫ 0.5.25
2007-‐‑‒06-‐‑‒11 ▫ 0.6.30 2008-‐‑‒04-‐‑‒29 ▫ 0.7.59 2009-‐‑‒05-‐‑‒25 ▫ 0.8.51 2010-‐‑‒09-‐‑‒27 ▫ 1.0.0 2011-‐‑‒04-‐‑‒12 ▫ 1.2.0 2012-‐‑‒04-‐‑‒23 ▫ 1.4.0 2013-‐‑‒04-‐‑‒24 2013-‐‑‒05-‐‑‒18nginxの紹介 16
17.
nginxは誰が使っているのか? • facebook, WordPress.ORGなど多数 ▫
http://nginx.com/company.html • シェア ▫ アクティブサイトのシェアは13%で2位 (2013年年4⽉月) – 英国のインターネット サービスの調査会社 NETCRAFT社調べ http://news.netcraft.com/archives/ 2013/04/02/april-‐‑‒2013-‐‑‒web-‐‑‒server-‐‑‒ survey.html 2013-‐‑‒05-‐‑‒18nginxの紹介 17
18.
Web server developers:
Market share of active sites [%] 0 10 20 30 40 50 60 Apache nginx Microsoft 2013-‐‑‒05-‐‑‒18nginxの紹介 18 英国のインターネット サービスの調査会社NETCRAFT社調べ http://news.netcraft.com/archives/2013/04/02/april-‐‑‒2013-‐‑‒web-‐‑‒server-‐‑‒survey.html
19.
なぜnginxを使うのか? • を説明する前に、Webサーバの接続処理理のアー キテクチャについて確認しよう。 2013-‐‑‒05-‐‑‒18nginxの紹介 19
20.
接続処理理のアーキテクチャ • よく使われているものに次の3つがある。 ▫ マルチプロセス
モデル ▫ マルチスレッド モデル ▫ イベント駆動モデル 2013-‐‑‒05-‐‑‒18nginxの紹介 20
21.
マルチプロセス モデル • クライアントからの接続 毎にプロセスをフォーク して処理理する。 •
フォークのコストが⾼高い ため、通常はプレフォー ク(事前にフォークして おく)モデルを採⽤用する。 ▫ Apache HTTP Server -‐‑‒ MPM Prefork 2013-‐‑‒05-‐‑‒18nginxの紹介 21 親プロセス ⼦子プロセス ⼦子プロセス ⼦子プロセス
22.
マルチプロセス モデル • 利利点 ▫
メモリ空間が⼦子プロセ ス毎に独⽴立立しているた め、スクリプト⾔言語な どを組み込みやすい。 – Apache HTTP Server のmod_̲php 2013-‐‑‒05-‐‑‒18nginxの紹介 22 親プロセス ⼦子プロセス ⼦子プロセス ⼦子プロセス
23.
マルチプロセス モデル • ⽋欠点 ▫
メモリ空間が共有できな いため、プロセス間の情 報共有が難しい。 ▫ 同時接続数が増えると、 その分だけ⼦子プロセスも 増える。 ▫ →メモリをたくさん消費 する。 ▫ →コンテキストスイッチ のオーバーヘッドが⼤大き くなる。 2013-‐‑‒05-‐‑‒18nginxの紹介 23 親プロセス ⼦子プロセス ⼦子プロセス ⼦子プロセス
24.
マルチスレッド モデル • クライアントからの接続毎にス レッドを⽣生成して処理理する。 •
バリエーションとしてマルチプ ロセスとマルチスレッドのハイ ブリッドモデルもある。 ▫ Apache HTTP Server -‐‑‒ MPM worker 2013-‐‑‒05-‐‑‒18nginxの紹介 24 プロセス スレッド スレッド スレッド
25.
マルチスレッド モデル • 利利点 ▫
メモリ空間が各スレッドの間 で共有できる。つまり、ス レッド間で情報を共有できる。 ▫ マルチプロセス モデルに⽐比べ てメモリ消費量量やコンテキス トスイッチのオーバーヘッド が⼩小さい。 2013-‐‑‒05-‐‑‒18nginxの紹介 25 プロセス スレッド スレッド スレッド
26.
マルチスレッド モデル • ⽋欠点 ▫
メモリ空間を共有しているため、 スクリプト⾔言語を組み込めない ことがある。 ▫ 同時接続数が増えると、その分 だけスレッド数も増える。 ▫ →コンテキストスイッチのオー バーヘッドが⼤大きくなる。(メ モリ空間の切切り替えがない分、 マルチプロセス モデルよりは⼩小 さい) 2013-‐‑‒05-‐‑‒18nginxの紹介 26 プロセス スレッド スレッド スレッド
27.
イベント駆動モデル • クライアントからの接続毎に イベント処理理を⾏行行う。 • 1プロセスは1CPUしか使えな いので、CPUの数だけプロセ スを⽤用意するワーカーモデル が使われている。 ▫
Apache HTTP Server -‐‑‒ MPM event ▫ nginx 2013-‐‑‒05-‐‑‒18nginxの紹介 27 プロセス イベント処理理 ループ
28.
イベント駆動モデル • 利利点 ▫ メモリ空間が共有できると いうか1つ。 ▫
同時接続数が増えてもプロ セス数やスレッド数が増え ることはない ▫ →メモリ消費量量やコンテキ ストスイッチのオーバー ヘッドが⼩小さい。 2013-‐‑‒05-‐‑‒18nginxの紹介 28 プロセス イベント処理理 ループ
29.
イベント駆動モデル • ⽋欠点 ▫ メモリ空間を1つであるため、 スクリプト⾔言語を組み込め ないことがある。 2013-‐‑‒05-‐‑‒18nginxの紹介 29 プロセス イベント処理理 ループ
30.
なぜnginxを使うのか? • 「C10K問題」(クライアント1万台問題) ▫ The
C10K problem http://www.kegel.com/c10k.html ▫ マルチプロセス モデルやマルチスレッド モデ ルのWebサーバ – 同時接続数が増える。 – →プロセス数やスレッド数が増える。 – →コンテキストスイッチのオーバーヘッドが ⼤大きくなる。 – →本来の処理理に時間が割けなくなる。 2013-‐‑‒05-‐‑‒18nginxの紹介 30
31.
なぜnginxを使うのか? • イベント駆動モデル ▫ コンテキストスイッチのオーバーヘッドが⼩小 さい。 →「C10K問題」に対する解決策 ▫
メモリ空間は1つであるため、同時接続数が増 えてもメモリの消費量量が⼩小さい。 →仮想マシンのインスタンスを⼩小さくできる。 →リソースの効率率率的な利利⽤用 2013-‐‑‒05-‐‑‒18nginxの紹介 31
32.
このセッションのまとめ • nginxの読み⽅方は「エンジン エックス」 •
nginxは ▫ Webサーバ ▫ リバース プロキシ サーバ ▫ メール プロキシ サーバ • nginxの開発者は ▫ イーゴリ・シソーエフ(Igor Sysoev)⽒氏 (ロシア) ▫ Nginx, Inc. • シェアは13%で2位 (アクティブサイト) 2013-‐‑‒05-‐‑‒18nginxの紹介 32
33.
このセッションのまとめ • 接続処理理のアーキテクチャ ▫ マルチプロセス
モデル ▫ マルチスレッド モデル ▫ イベント駆動モデル • nginxを使う理理由 ▫ nginxはイベント駆動モデル – メモリ消費し尽くさない。 – コンテキストスイッチのオーバーヘッドが⼤大 きくない。 ▫ →リソースを効率率率的に利利⽤用できる 2013-‐‑‒05-‐‑‒18nginxの紹介 33
34.
2013-‐‑‒05-‐‑‒18nginxの紹介 34
35.
nginxで何ができるか • このセッションで学んでもらうこと ▫ 機能とモジュール ▫
ウェブサーバ ▫ プロキシーサーバ 2013-‐‑‒05-‐‑‒18nginxの紹介 35
36.
機能とモジュール • nginxの機能はモジュールにより実装されてい る • モジュールを追加することにより機能を追加で きる。 2013-‐‑‒05-‐‑‒18nginxの紹介 36
37.
機能とモジュール • nginxの機能を把握するにはモジュールを確認する のがよい ▫ 公式サイトのマニュアルもモジュール毎に説明が ある •
nginx 1.4.1のモジュール⼀一覧を⾒見見てみよう ▫ 古いバージョンには存在しないモジュールもある よ • 次ページ以降降の凡例例) ▫ ◎: 基本モジュール ▫ ○: 標準モジュール(デフォルト有効) ▫ △: オプションモジュール(デフォルト無効) 2013-‐‑‒05-‐‑‒18nginxの紹介 37
38.
基本モジュール モジュール名 説明 ◎ ngx_̲http_̲core_̲module
HTTPコアモジュール ◎ ngx_̲http_̲log_̲module アクセスログ ◎ ngx_̲http_̲static_̲module 静的ファイル ◎ ngx_̲http_̲index_̲module /'で終わるリクエストに対する処理理 ◎ ngx_̲http_̲chunked_̲filter_̲module Content-‐‑‒Encoding: chunkedの処 理理フィルタ ◎ ngx_̲http_̲range_̲filter_̲module Content-‐‑‒Rangeの処理理フィルタ ◎ ngx_̲http_̲headers_̲filter_̲module ヘッダの追加、Expires, Cache-‐‑‒ Controlの制御のフィルタ ◎ ngx_̲http_̲not_̲modified_̲filter_̲moduleNot Modifiedの処理理フィルタ 2013-‐‑‒05-‐‑‒18nginxの紹介 38 ウェブサーバとして基本機能 を提供するモジュール
39.
通信、コネクション モジュール名 説明 △ ngx_̲http_̲ssl_̲module
SSL △ ngx_̲http_̲spdy_̲module SPDY (1.4.0〜~) ○ ngx_̲http_̲limit_̲conn_̲module 同時接続数制御 ○ ngx_̲http_̲limit_̲req_̲module リクエストレート制御 2013-‐‑‒05-‐‑‒18nginxの紹介 39 SPDY • SPDY Protocol Draft 2サポート • nginx 1.4.0以降降 • 要OpenSSL 1.0.1以降降 • "Next Protocol Negotiation" TLS extension TLS v1.1, v1.2 • nginx 1.0.12以降降 • 要OpenSSL 1.0.1以降降
40.
リクエスト、レスポンス モジュール名 説明 ○ ngx_̲http_̲browser_̲module
User-‐‑‒Agentの取得 ○ ngx_̲http_̲referer_̲module Refererのチェック △ ngx_̲http_̲realip_̲module LBやプロキシーのバックエンドとして利利 ⽤用時にクライアントIPアドレスの取得 ○ ngx_̲http_̲rewrite_̲module リクエストURIの書き換えやリダイレクト やレスポンスの制御 ○ ngx_̲http_̲empty_̲gif_̲module 1ピクセル透過GIFの⽣生成 △ ngx_̲http_̲gzip_̲static_̲module gzip圧縮ファイルの利利⽤用 △ ngx_̲http_̲gunzip_̲module gzip圧縮ファイルの伸張 2013-‐‑‒05-‐‑‒18nginxの紹介 40
41.
フィルタ モジュール名 説明 ○ ngx_̲http_̲gzip_̲module
gzipによるレスポンスの圧縮 ○ ngx_̲http_̲charset_̲module ⽂文字エンコーディングの指定、⽂文字コード 変換 ○ ngx_̲http_̲userid_̲module ユーザーのトラッキング △ ngx_̲http_̲addition_̲module テキストの追加 △ ngx_̲http_̲sub_̲module テキストの置換 △ ngx_̲http_̲xslt_̲module XSLT △ ngx_̲http_̲image_̲filter_̲module 画像変換 ○ ngx_̲http_̲ssi_̲module SSI △ ngx_̲http_̲perl_̲module SSIにPerl組み込み 2013-‐‑‒05-‐‑‒18nginxの紹介 41
42.
アクセス制御 モジュール名 説明 ○ ngx_̲http_̲access_̲module
クライアントIPアドレスによる制御 ○ ngx_̲http_̲auth_̲basic_̲module ベーシック認証による制御 ○ ngx_̲http_̲geo_̲module クライアントの地理理情報の取得 △ ngx_̲http_̲geoip_̲module GeoIPによるクライアントの地理理情報の 取得 △ ngx_̲http_̲secure_̲link_̲module ⼀一時的なリンクの利利⽤用による認証 2013-‐‑‒05-‐‑‒18nginxの紹介 42 ダイジェスト認証はサ ポートしていない。
43.
その他 モジュール名 説明 ○ ngx_̲http_̲split_̲clients_̲module
A/Bテスト⽀支援機能 ○ ngx_̲http_̲map_̲module 変数のマッピング ○ ngx_̲http_̲autoindex_̲module ディレクトリ⼀一覧 △ ngx_̲http_̲random_̲index_̲module インデックスファイルとして返すファ イルをランダムに変更更 △ ngx_̲http_̲flv_̲module FLV △ ngx_̲http_̲mp4_̲module mp4 (H.264/AAC) △ ngx_̲http_̲dav_̲module DAV △ ngx_̲http_̲stub_̲status_̲module ステータス情報 △ ngx_̲http_̲degradation_̲module 低メモリ状態でエラーを返す 2013-‐‑‒05-‐‑‒18nginxの紹介 43
44.
プロキシー、アップストリーム モジュール名 説明 ○ ngx_̲http_̲proxy_̲module
プロキシー ○ ngx_̲http_̲fastcgi_̲module FastCGI ○ ngx_̲http_̲uwsgi_̲module uWSGI ○ ngx_̲http_̲scgi_̲module SCGI ○ ngx_̲http_̲memcached_̲module Memcached ○ ngx_̲http_̲upstream_̲ip_̲hash_̲module upstream ○ ngx_̲http_̲upstream_̲least_̲conn_̲module upstream ○ ngx_̲http_̲upstream_̲keepalive_̲module upstream 2013-‐‑‒05-‐‑‒18nginxの紹介 44
45.
メール モジュール名 説明 ◎ ngx_̲mail_̲core_̲module
メールプロキシーのコアモジュール。 ◎ ngx_̲mail_̲proxy_̲module ◎ ngx_̲mail_̲auth_̲http_̲module ○ ngx_̲mail_̲pop3_̲module POP3 ○ ngx_̲mail_̲imap_̲module IMAP ○ ngx_̲mail_̲smtp_̲module SMTP △ ngx_̲mail_̲ssl_̲module SSL 2013-‐‑‒05-‐‑‒18nginxの紹介 45
46.
開発、デバッグ モジュール名 説明 △ ngx_̲google_̲perftools_̲module
Google Performance Tools △ ngx_̲cpp_̲test_̲module 2013-‐‑‒05-‐‑‒18nginxの紹介 46
47.
機能とモジュール • 機能の追加はビルドするときに組み込む ▫ DSO(動的共有オブジェクト)には対応して いないため、後から動的に追加できない。 ▫
ビルド時のconfigureスクリプトに使いたい機 能のモジュールを指定する。 – ./configure --with-http_spdy_module --add-module=$HOME/src/lua-nginx-module-0.8.1 2013-‐‑‒05-‐‑‒18nginxの紹介 47
48.
機能とモジュール • 組み込まれているモジュールを調べる⽅方法 ▫ "nginx
–V"でconfigure時のオプションを表⽰示 2013-‐‑‒05-‐‑‒18nginxの紹介 48 $ nginx -‐‑‒V nginx version: nginx/1.4.1 built by gcc 4.6.1 (Ubuntu/Linaro 4.6.1-‐‑‒9ubuntu3) TLS SNI support enabled configure arguments: -‐‑‒-‐‑‒prefix=/usr/local/nginx -‐‑‒-‐‑‒error-‐‑‒log-‐‑‒path=/var/log/nginx/error.log -‐‑‒-‐‑‒http-‐‑‒ client-‐‑‒body-‐‑‒temp-‐‑‒path=/var/lib/nginx/body -‐‑‒-‐‑‒http-‐‑‒fastcgi-‐‑‒temp-‐‑‒path=/var/lib/nginx/fastcgi -‐‑‒-‐‑‒http-‐‑‒ log-‐‑‒path=/var/log/nginx/access.log -‐‑‒-‐‑‒http-‐‑‒proxy-‐‑‒temp-‐‑‒path=/var/lib/nginx/proxy -‐‑‒-‐‑‒http-‐‑‒scgi-‐‑‒temp-‐‑‒ path=/var/lib/nginx/scgi -‐‑‒-‐‑‒http-‐‑‒uwsgi-‐‑‒temp-‐‑‒path=/var/lib/nginx/uwsgi -‐‑‒-‐‑‒lock-‐‑‒path=/var/lock/ nginx.lock -‐‑‒-‐‑‒pid-‐‑‒path=/var/run/nginx.pid -‐‑‒-‐‑‒user=nginx -‐‑‒-‐‑‒group=nginx -‐‑‒-‐‑‒with-‐‑‒http_̲ssl_̲module -‐‑‒-‐‑‒ with-‐‑‒http_̲spdy_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲realip_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲addition_̲module -‐‑‒-‐‑‒with-‐‑‒ http_̲xslt_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲image_̲filter_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲geoip_̲module -‐‑‒-‐‑‒with-‐‑‒ http_̲sub_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲dav_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲flv_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲mp4_̲module -‐‑‒-‐‑‒with-‐‑‒ http_̲gunzip_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲gzip_̲static_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲random_̲index_̲module -‐‑‒-‐‑‒with-‐‑‒ http_̲secure_̲link_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲degradation_̲module -‐‑‒-‐‑‒with-‐‑‒http_̲stub_̲status_̲module -‐‑‒-‐‑‒add-‐‑‒ module=/home/taki/src/ngx_̲pagespeed-‐‑‒release-‐‑‒1.5.27.2-‐‑‒beta -‐‑‒-‐‑‒add-‐‑‒module=/home/taki/src/ ngx_̲devel_̲kit-‐‑‒0.2.18 -‐‑‒-‐‑‒add-‐‑‒module=/home/taki/src/lua-‐‑‒nginx-‐‑‒module-‐‑‒0.8.1 -‐‑‒-‐‑‒with-‐‑‒pcre=/home/ taki/src/pcre-‐‑‒8.32 -‐‑‒-‐‑‒with-‐‑‒pcre-‐‑‒jit -‐‑‒-‐‑‒with-‐‑‒openssl=/home/taki/src/openssl-‐‑‒1.0.1e
49.
ウェブサーバ • ウェブサーバとして必要な機能はほとんど実装 している。 • 原則としては静的コンテンツのみを扱う ▫
例例外 – SSI – SSIによるPerlの組み込み(実験的実装) ▫ 動的コンテンツはプロキシー/アップストリー ム機能を通じて扱う。 2013-‐‑‒05-‐‑‒18nginxの紹介 49
50.
プロキシーサーバ • バックエンド(アップストリーム)に対するプ ロキシーとキャッシュ機能 ▫ HTTP/HTTPS ▫
FastCGI ▫ SCGI ▫ uWSGI ▫ Memcached • 動的コンテンツに対するプロキシーとしてよく 使われる。 2013-‐‑‒05-‐‑‒18nginxの紹介 50
51.
Webアプリケーションとの連携 2013-‐‑‒05-‐‑‒18nginx⼊入⾨門 51 Webブラウザ nginx Web アプリケーション サーバ http(s) http(s) FastCGI SCGI uWSGI Webアプリ Webアプリケーションサーバに対する プロキシーサーバとして動作
52.
動的コンテンツへの対応例例 • CGI ▫ CGIをFastCGIラッパーspawn-‐‑‒fcgiで動かし、 nginxはFastCGI経由でアクセスする。 ▫
CGIをuWSGI経由で動かし、 nginxはuWSGI経由でアクセスする。 • FastCGI対応アプリケーションサーバ ▫ nginxはFastCGI経由でアクセスする。 2013-‐‑‒05-‐‑‒18nginxの紹介 52
53.
動的コンテンツへの対応例例 • PHP ▫ PHPをPHP-‐‑‒FPMで動かし、 nginxはFastCGI経由でアクセスする。 •
Ruby/RACK, Ruby on Rails ▫ unicorn経由で動かし、 nginxはHTTPプロキシーとしてアクセスする。 ▫ passengerをnginxに組み込んでアクセスする。 2013-‐‑‒05-‐‑‒18nginxの紹介 53
54.
動的コンテンツへの対応例例 • Python/WSGI ▫ gunicorn経由で動かし、 nginxはHTTPプロキシーとしてアクセスする。 ▫
uWSGI経由で動かし、 nginxはuWSGI経由でアクセスする。 • Perl/PSGI ▫ Starman経由で動かし、 nginxはHTTPプロキシーとしてアクセスする。 2013-‐‑‒05-‐‑‒18nginxの紹介 54
55.
このセッションのまとめ • nginxの機能 ▫ ウェブサーバ – 静的コンテンツ ▫
プロキシーサーバ – 動的コンテンツ • 動的コンテンツの対応例例 2013-‐‑‒05-‐‑‒18nginxの紹介 55
56.
2013-‐‑‒05-‐‑‒18nginxの紹介 56
57.
apacheとは何が違うのか • メモリの消費量量 ▫ フットプリントの⼩小ささ ▫
apache 2.4からはeventのMPMがあるが。 • 同時アクセス数 ▫ C10K問題を意識識した設計 • 速度度 ▫ 静的ファイルは速い。 ▫ 動的コンテンツはmod_̲*で組み込んだ apacheのprefork MPMの⽅方がオーバーヘッド がないので速い。 2013-‐‑‒05-‐‑‒18nginxの紹介 57
58.
2013-‐‑‒05-‐‑‒18nginxの紹介 58
Download