#まず始めに
この記事はNginxについて、自己理解のために簡単に仕組みと使い方をまとめたものです。
#Nginx(えんじんえっくす)って??
ミドルウェアの中のWEBサーバソフトフェアの1つ
**オープンソースソフトウェア(OSS)**で、無償で誰でも利用可能
2004年10月に最初の公開リリースが行われ、10000以上の同時コネクションを処理する際の
パフォーマンス課題である「C10k問題」への解決策として本ソフトウェアを作成された
よくApacheと比較されていますが、どちらも設定・追加モジュール次第である程度対応できます。
Nginxは高速で高負荷に強く、柔軟な設定を行うことができます。
また大量の動的コンテンツの処理には不向きで、設定情報などはApacheの方が充実しています。
#Nginxの基本機能
HTTPサーバーとしての基本的な機能はもちろん、以下のような機能を備えています。
・リバースプロキシ(キャッシュ機能あり)
・負荷分散(ロードバランサ)
・FastCGIサポート(キャッシュ機能あり)
・URI Rewrite
・WebSockets
・静的ファイル・インデックスファイルの処理、自動インデクシング
・TLS/SSL
主な特徴的機能の説明をまとめました。
####リバースプロキシ
特定のサーバへのリクエストが必ず通過するように設置されたプロキシサーバ。
不特定多数のクライアントに対するアクセス制限や、キャッシュ機能によるサーバの負荷軽減のため用意される。
####負荷分散
コンピュータネットワークにおける技法の一種。
クライアントとサーバの間に設置し、複数のサーバが分散処理を行う。
また、故障や保守によりサーバが停止した際にも、サービスを続行させることができる。
####FastCGIサポート
FastCGIとは、Webサーバ上でユーザプログラムを動作させるためのインタフェース仕様の一つ。
従来のCGIのリクエスト毎に新しいプロセスを作成する代わりに、
FastCGI は永続的なプロセスを使用して一連のリクエストを処理する。
#Nginxのインストール
nginxの公式サイトからZIPファイルをダウンロード
nginx.exeをダブルクリック
ブラウザで http://localhost/ を開いてみる
上のページが出ればインストール完了です。
sudo nginx -s quit
で終了します。
linux上でインストールする場合は yum install nginx
起動:systemctl start nginx
停止:systemctl start nginx
#Nginxで設定できること
・アクセス制限
Basic認証(特定パスへの制限)
大量リクエスト制限(コネクション数の抑制)
・リクエストの書き換え
リダイレクト
エラーページを返す(後続のサーバ・アプリケーションでの特定ページの表示)
・gzip圧縮転送
圧縮して転送
あらかじめ圧縮してあるファイルを転送
その他の項目、書き方は公式ドキュメントや他記事を参照ください。
#最後に
Apacheに比べ、細かな設定を行う際の情報が少なく初心者には難しいかもしれませんが
アクセス数の多いサイトやアプリには必須といっていいほど、需要は増えていると思います。
また、ApacheとNginxを組み合わせることで、どちらのメリットを生かした開発を行うことができます。
今後もより深く理解できるように、細かな機能などの学習・紹介ができればと思います。
最後まで読んでいただきありがとうございました。