Mais conteúdo relacionado Semelhante a NGINX New Features (Japanese Webinar) (20) NGINX New Features (Japanese Webinar)3. | ©2019 F53
Agenda
0. NGINX リリースサイクル
1. NGINX Plus 最新リリース
2. NGINX Controller v3.6
3. NGINX App Protect
4. NGINX HTTP/3
5. 最新機能デモ
4. | ©2019 F54
History of NGINX
NGINX
(オープンソー
ス)
2011 : Nginx, Inc. 会社設立
2013 : Nginx Plusリリース
2017 : Announced;
- NGINX Controller
- NGINX Unit
- NGINX WAF
2019
2014 : NGINX Becomes Number One Web Server
for Top 10,000 Busiest Websites in the World
2004 : NGINX 最初のリリー
ス
2019 : Fuels 375M+ web sites, 60%
of the busiest 100K sites
NGINX PLUS
(商用版)
2002 : Igor Sysoev (CTO of NGINX, Inc.)
began development of Nginx
買収
イゴール・シソエフ
NGINX 著者
5. | ©2019 F55
Source: W3Techs Web server ranking, 07-May-2019
「ほとんどのWebサイトがNGINXを使用しています」
WebサイトにNGINXを利用しています
50%
61%
67%
Top 1M Top 100K Top 10K
Source: Netcraft April 2019 Web Server Survey
7. | ©2019 F57
© 2019 F5 NETWORKS - CONFIDENTIAL
NGINX OSS – リリースサイクル
NGINX OSSは、mainline(奇数)とstable(偶数)の二種類に分かれます
毎年4月にmainlineからstableをforkします。以降のリリースVersionが新しい番号へ更新されます
NGINX Plusは、NGINX OSSと別のレポジトリで管理されています。mainlineからforkされます
NGINXはmainlineの利用を推奨しますが、更新頻度などの観点からstableの利用も可能です
1year 1year
8. | ©2019 F58
© 2019 F5 NETWORKS - CONFIDENTIAL
R20 R21 R22
NGINX Plusは、NGINXメインラインでテスト・実証された、すべてのOSS新機能を取り入れま
す。
NGINX Plusには、エンタープライズ向けの追加機能が含まれています。
NGINX Plusは、4ヶ月毎(4月、9月、12月)にリリースされます。
NGINX Plusは、リリースから2年間サポートされます。
NGINX Plus – リリースサイクル
10. | ©2019 F510
NGINX Plus リリー
ス
NGINX PLUS
(商用版)
2016
2017
2018
2019
2020
• 動的モジュール
• JWT認証
• UDPロードバランシング
• JavaScriptモジュール
• NGINX WAF
• NGINX Plus API
• Key-Valueストア
• Mirrorリクエスト
• HTTP/2
• gRPC
• OpenID
• 共有メモリ
• レート制限
• Sticky Sessions
• 負荷分散
• Random two choices
• 動的SSL証明書変更
• モニタリング機能向上
• リハーサルモード (Dry-Run)
• レート制限
• コネクション制限
• NGINX App Protect
• HTTP/3 プレビュー
11. | ©2019 F511
NGINX Plus R22 の新機能
クライアント証明書認証の強化
• オンライン証明書ステータスプロトコル(OCSP)の
検証では、mTLSで失効した証明書チェックする
セキュリティ層の追加
複数IdPに対するOpenID Connectのサポート
• NGINX Plus R15では、OpenID Connect(OIDC)統合を
導入し、お客様がアプリケーションにシングルサインオ
ン(SSO)を追加できるようにしました
• NGINX Plus R22では、複数のOIDC IDプロバイダ
(IdP)と簡単に統合できます
NGINX Plus ダッシュボードの強化
• リクエストとコネクション制限のチャート
• OIDCアクティビティに関するメトリクス
NGINX JavaScriptモジュールの強化
• njs 0.4.1アップデート
• バグ修正とJavaScriptモジュールのインポートや
ヘッダーオブジェクトのアクセスが追加されました
NGINX Plus のみの機能
https://www.nginx.com/blog/nginx-plus-r22-released/
12. | ©2019 F512
• SSLクライアント証明書のOCSP検証を有効にするには、証明書の検証を有効にする
ssl_ocspディレクティブと新しいディレクティブをssl_verify_clientを含めます
• クライアント証明書が信頼されていないか、OCSP応答が有効でない場合、TLSハンドシェイクは失敗し
ます。ステータスコード495 (SSL Certificate Error)が返されエラーログに書き込まれます
クライアント証明書認証の強化
server{
# ServerTLSconfiguration
listen443ssl;
ssl_certificate/etc/ssl/foo.example.com.crt;
ssl_certificate_key/etc/ssl/foo.example.com.key;
# Clientcertificateauthentication
ssl_verify_clienton;
ssl_trusted_certificate /etc/ssl/cachain.pem;
ssl_ocspon; # EnableOCSP validation
location/ {
proxy_passhttp://my_backend;
}
}
Errorlog
YYYY/MM/DD hh:mm:ss [error]31222#0:*5 certificatestatus"revoked" in theOCSP
responsewhilerequestingcertificatestatus,responder:127.0.0.1
13. | ©2019 F513
• 複数mapブロックを利用して複数IdPをサポートするようになりました。
• リファレンスJavaScriptコードはnjsモジュールへ実装されました、その他njsソリューションと共存でき
ます。
OpenID Connectの機能強化
map $host$oidc_authz_endpoint {
www.example.com "https://my-idp.example.com/oauth2/v1/authorize";
my-app.dev.test "http://10.0.0.11:8080/auth/realms/master/protocol/openid-connect/auth";
}
map $host$oidc_token_endpoint {
www.example.com "https://my-idp.example.com/oauth2/v1/token";
my-app.dev.test "http://10.0.0.11:8080/auth/realms/master/protocol/openid-connect/token";
}
map $host$oidc_jwt_keyfile{
www.example.com "https://my-idp.example.com/oauth2/v1/keys";
my-app.dev.test "http://10.0.0.11:8080/auth/realms/master/protocol/openid-connect/certs";
}
map $host$oidc_client {
www.example.com "client-id-one";
my-app.dev.test "client-id-two";
}
map $host$oidc_client_secret{
www.example.com "client-secret-one";
my-app.dev.test "client-secret-two";
}
14. | ©2019 F514
• NGINX Plusライブアクティビティモニタリングダッシュボードに情報が表示され、累積数が表形式で、
タイムスタンプ付きの数がグラフ形式で表示されます。
NGINX Plusダッシュボードの強化
テーブルには、limit_req_zone
limit_conn_zoneディレクティブで定義
された各ゾーンの行が含まれています。
チャートを表示するには、行の左端にあ
るチャートアイコンをクリックします。
15. | ©2019 F515
NGINX JavaScriptモジュールの機能強化
logging.conf
js_importlogging.js; # Load thisJS fileasthe 'logging'module
js_set$raw_headers_in logging.rawHeadersOnError;
log_formatjson escape=none '{"response":'
'{"timestamp":"$time_iso8601","status":$status},'
'"request":’
'{"client":"$remote_addr","uri":"$request_uri","headers":$raw_headers_in}}';
server{
listen80;
access_log /var/log/nginx/access.logmain;
access_log /var/log/nginx/access_json.logjsonif=$raw_headers_in;
#...
}
exportdefault { rawHeadersOnError };
function rawHeadersOnError(r){
if(r.status>= 400) {
return JSON.stringify(r.rawHeadersIn);
}else {
return '';//Donot triggeraccess_logif=condition
}
}
404応答サンプルログ
$ curl http://localhost/bogus
$ tail --lines=1/var/log/nginx/access_json.log
{"response":{"timestamp":"YYYY-MM-
DDThh:mm:ss+TZ_offset","status":404},"request":{"client":"127.0.0.1","uri":"/bogus","headers":[["Host","localhost:80"],["User-
Agent","curl/7.64.1"],["Accept","*/*"]]}}
- 新しい js_import ディレクティブ、複数のモジュールファイルをインポートすることが可能
- 改善されたHTTPリクエストヘッダーサポート
- TypeScript定義ファイルをnjsコードで使用できます
- 外部からの変数をネイティブJavaScriptオブジェクトに変換するためのサポート
16. | ©2019 F516
NGINX Plus R22 でのサポートシステムの変更
サポートシステム
• Alpine Linux 3.9, 3.10, 3.11
• Amazon Linux (2018.03+), Amazon Linux 2 LTS
• CentOS 6.5+, 7.4+, 8.0+
• Debian 9, 10
• FreeBSD 11.2+, 12.0+
• Oracle Linux 6.5+, 7.4+
• RHEL 6.5+, 7.4+, 8.0+
• SUSE Linux Enterprise Server 12, 15
• Ubuntu 16.04 LTS, 18.04 LTS, 19.10, 20.04LTS
サポート終了
• Alpine Linux 3.8
• 32bit (i386)パッケージ
19. | ©2019 F519
19
API 定義と公開
OpenAPI
モニタリングと分析
Developer Portal
*Preview
カスタマイズ可能な
ダッシュボード
監視アラート
API インサイト
(REST API + ロギン
グ)
マルチクラウドサポート
API 保護 認証と認可
API ManagementAPI Gateway
NGINX Controller v3.6 リリース
23. | ©2019 F523 CONFIDENTIAL
NGINX App Protect
ワールドワイドで実績豊富なF5製WAFの機能を移植
(Signature/DataGuard/HTTP Compliance/Evasion Techniques等)Secure
Manage
CI/CD
Friendly
NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応)
• 仮想マシン/コンテナの双方で動作可能
• ゲートウェイ型/ホスト型
軽量なため、CI/CDパイプライン上でのデプロイが容易
2020年5月リリース
24. | ©2019 F524 CONFIDENTIAL
NGINX App ProtectによるWebアプリケーション保護
ネットワーク
OS
ミドルウェア
Webアプリケーション
ホスト型IPS/IDS
Deep Security等
セキュリティ評価
Amazon Inspector
ネットワーク
ファイアウォール
Security Group/NACL
クラウドプラットフォーム提供ソリューション
WEBアプリケーション
ファイアウォール
AWS WAF
サードパーティソリューション
NGINX App Protectを追加いただくことで、
クラウドプラットウォーム提供ソリューション/サードパーティソリューションとあわせて
セキュリテイレベルを向上
26. | ©2019 F526
NGINX App Protect セキュリティポリシー
Drivers登録
microservice
Circuits
microservice
Seasons
microservice
/api/f1/*
/application01
/api/circuits/*
=/api/f1/seasons
F1 GET
microservice
28. | ©2019 F528 CONFIDENTIAL
NGINX HTTP/3 support
https://quic.nginx.org/readme.html
29. | ©2019 F529 CONFIDENTIAL
NGINX HTTP/3 support
HTTP/1.1
HTTP/3
Notas do Editor 70% of HTTP/2 enabled sites use NGINX Introducing NGINX 1.16 and 1.17
https://www.nginx.com/blog/nginx-1-16-1-17-released/ And now with NGINX controller… we have a…High Performing, Cloud-Native and API Driven Solution to Deploying, Monitoring and Managing your NGINX Plus Instances at Scale and I am going to get more into this later
And we can go a step further and look at more of the core features that are necessary in either an API Management or Gateway solution…. Our customers can deploy this solution in one of 4 different types of environments:
1 – This can live on NGINX Plus when NGINX plus is used as a load balancer,
2 – If you’re using NGINX as API Gateway, you can install NGINX App Protect in that instance to protect API’s
3 – You can use it as an Ingress controller for Kubernetes pods
4 – You can also use it as a sidecar for microservices