コンテンツにスキップ

1. ミドルウェア

1.1. ミドルウェアとは

1.1.1. ミドルウェアの概要

ミドルウェア(Middleware)とはOSとアプリケーションの間に入って、両者の役割を補佐するソフトウェアのこと。 ミドルウェアを使用することにより、アプリケーションサービスやAPI管理の処理が全てミドルウェアによって行われる。

ミドルウェア

1.1.2. ミドルウェアの分類

ミドルウェアには「Webサーバ」「アプリケーションサーバ」「データベースサーバ」の3種類がある。これらはWebの3層構造と呼ばれ、セキュリティの高さや管理のしやすさ、故障の際の復旧が早いことから、大規模システムで広く使用されている

Webサーバ

Google ChromeなどのWebブラウザから検索した検索結果を視覚的に表示させる役割を担うサーバ。 クライアントから送信されたHTTPリクエストに応答し、HTMLやCSSなど適切なレスポンスを返す。

アプリケーションサーバ(APサーバ)

動的コンテンツや業務処理を行うサーバ。 WebサーバーからのリクエストをもとにJava、PHP、Rubyなどで作成されたアプリケーションを実行し、動的コンテンツを生成する。

データベース管理サーバ(DBサーバ)

データベース管理システム(Data Base Management System/DBMS )が動作しているサーバ。データベースとしてデータを保持し、リクエストに対してデータの出力や追加、削除を行う。

1.2. ミドルウェアの種類

1.2.1. Web

Apache

ApacheはOSSのWebサーバソフトウェア。 高い性能と優れた動作性から人気。

Apacheは小規模なブログやホームページやECサイト(データ量が多くても処理速度が速いため)には向いているが、重要大人数が利用するようなWEBアプリケーションの構築には不向きと言える。

特徴

  • OSに依存せずに動作する
  • 処理速度が速い
  • 機能が豊富

デメリット

  • 複数のデータ処理を実行するとメモリを大量に消費してしまう
  • 多人数が同時に使用するWEBサイト構築には不向き

Nginx

NginxはOSSなWebサーバソフトウェア。 SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュなどの機能も持つ特徴がある。

特徴

  • 処理速度が高い
  • メモリ消費量を抑えやすい
  • 大量の同時接続処理を素早く処理しやすい

デメリット

  • 動画を多く扱うコンテンツの処理は不得意
  • 機能追加がしずらい

LiteSpeed

TLiteSpeedは無料かつオープンソースなWebサーバソフトウェアであり、Apacheの機能と互換性が多いWebサーバ。

特徴

  • Nginxと同じく大量のリクエストを高速に処理することが可能
  • HTTP/3がサポートされている

デメリット

  • 商用ライセンスのWEBサーバアプリで有償版と無償版がある
  • 日本語の情報が少ない

IIS

IIS(Internet Information Services)はMicrosoftが提供するWindows用無料のWebサーバーソフトのこと。

利用できる言語はASPやNETなどで信頼性が高いといった特徴がある。 またGUIで操作できるのもポイント。

1.2.2. AP

Tomcat

GlassFish

Puma

Unicorn

Gunicorn

1.2.3. DB

MySQL

MariaDB

PostgreSQL

SQLServer

OracleDataBase

1.2.4. Proxy

Squid

OSSのプロキシサーバソフトウェア。 主にWebプロキシとして使用される。

公式サイト: http://www.squid-cache.org/

クライアントからのリクエストのキャッシュを行い、目的のWebサーバへのアクセスを中継する機能がある(proxy)。 また以下の特徴を持つ。

  • キャッシュ機能 ... リバースプロキシとして動作し、リクエスト結果のキャッシュが可能なため、頻繁にアクセスされるサイトの表示を高速化可能
  • アクセス解析 ... ユーザやIPアドレス、URLパターンなどを基にしてアクセスの許可やブロックを行うことが可能、また特定のウェブサイト等へのアクセス許可/ブロックなどの制御も可能
  • HTTP/HTTPS/FTP等のプロトコルをサポート
  • ログ記録 ... アクセスログ/エラーログを生成し、ネットワークの監視等が可能
  • 認証機能 ... ユーザごとにアクセス制御/ログ追跡が可能

参考URL

説明 URL
【入門】Squid とは?proxy サーバーの構築方法 https://hogetech.info/network/web/squid
How To Setup and Configure a Proxy – Squid Proxy https://devopscube.com/setup-and-configure-proxy-server/

HAProxy

プロキシサーバの機能を提供するOSSのミドルウェア。負荷分散機能(ロードバランサ)もある。 主にリバースプロキシとして使用され、バックエンドのサーバへのトラフィックを効果的に分散することが可能。

公式サイト: https://www.haproxy.org/

Tinyproxy

軽量で高速な匿名性のあるプロキシサーバソフトウェア。 個人用途や小規模な環境向け。

公式サイト: https://tinyproxy.github.io/

1.2.5. FileServer

Samba

SambaはWindowsネットワークで使用されるSMB/CIFSプロトコルを利用してWindowsでのファイル共有の仕組みを提供するファイルサーバソフトウェアのこと。 Linux系OSをWindowsファイルサーバーとして利用することが出来る。

機能としてはファイル共有のほかに、プリンタ共有、認証機能も提供する。 提供できる機能は以下の通り。

  • ファイルサーバ機能
  • プリントサーバ機能
  • WINSサーバ機能
  • ドメインコントローラ
  • ActiveDirectoryメンバーサーバ
  • Microsoftネットワーククライアント

NextCloud

Seafile

Pydio Cells

1.2.6. DNS

BIND

BINDはDNSサーバソフトウェアであり、多くのLinuxディストリビューションで採用されている。

PowerDNS

1.2.7. MailServer

Postfix

Postfixはsendmailと互換性を持つ新規開発されたMTA。 高速動作と設定が簡単なのが特徴で、デフォルトで使用するMTAとして最も一般的となっている。 Postfixは単一のデーモンではなく複数のプログラムが協調して動作する。

Exim

MTA。

Dovecot

DovecotはPOP3/IMAP4に加えSSL/TLSに対応したMDA。