Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Apache

Apache HTTP Serverとは?概要や主要な機能についてご紹介

投稿日:2021年2月14日 更新日:

<目次>

(1) Apache HTTP Serverとは?概要や主要な機能についてご紹介
 (1-1) Apacheとは?
 (1-2) Apacheの主な機能
 (1-3) Apacheの使用例

(1) Apache HTTP Serverとは?概要や主要な機能についてご紹介

(1-1) Apacheとは?

・Apacheは非常に有名なOSS(ソースが公開されており拡張や再配布が可)のHTTPサーバー(インターネットを通じてコンテンツを提供するコンピュータ)で、高いシェアを誇っています(世界の約40%のウェブサイトで利用されていると言われています)。
・Apache自体はWebアプリを提供するための1コンポーネントであり、実際は複数のソフトウェアが連携する事でWebサーバーとしての役割を果たします。
・よくある構成の例では、LAMP(Linux、Apache、MySQL、PHP/Perl/Pythonの頭文字を取った単語)が非常に有名です。
(表)

名称 区分 概要
Linux OS アプリケーションの操作を担当するOSです。
Apache Webサーバー HTTP通信によりクライアントからのリクエストを受けて、資源やコンテンツをレスポンスとして返却します。
MySQL データベース 全てのデータを保持するデータベースで、照会や更新処理を容易にします。
PHP CGIプログラム Apacheと連携して動的なコンテンツを生成するためのプログラミング言語です。

(図111)

(補足)
・PHPは元々cgiwrapプロセス(CGIスクリプトにアクセスする為のプロセス)における「CGIスクリプト」として設計され、画面を処理・表示する役割を果たしていました。
・CGIはCommon Gateway Interfaceの略で、Webサーバが受領したリクエストを、アプリケーションに連携(処理依頼)し、その結果を受け取りクライアントに返すための仕組みです。CGIの役割を果たすプログラムは様々な言語で作る事が出来て、C言語等のコンパイル言語で作られているものもあれば、PerlやPHPなど色々な種類があります。
・cgiwrapプロセスを使用するためには、ウェブサイトの「public_html」ディレクトリ配下に「cgi-bin」というフォルダを作成して、配下にCGIのスクリプトを配置していきます。

目次にもどる

(1-2) Apacheの主な機能

Apacheにはおおくの機能が備わっていますが、いくつか代表的なものをピックアップしてご紹介いたします。
(表)Apacheの主要な機能

No 機能名 モジュール名 説明
1 静的コンテンツの処理
2 モジュールの追加削除 Apacheはモジュールベースで作られており、必要な機能のみを追加し、不要なモジュールを削除する事で、より高速に動作させる事ができます。
3 Perl、PHPの利用
4 自動インデックス mod_autoindex ディレクトリのインデックスを生成するコマンドで、Linuxの「ls」やWindowsの「dir」コマンドと似ています。
この機能は、訪問者にWebサイトのディレクトリをブラウジングしてもらう際などで使用します。
5 .htaccess core
mod_authn_file
mod_authz_groupfile
mod_cgi
mod_include
mod_mime
「.htaccess」は「分散設定ファイル」と呼ばれており、ディレクトリ(≒フォルダ)単位で設定を変える機能を提供します。
6 IPv6対応 core
mpm_common
Apacheの「バインディング」と呼ばれる、Apacheで使うアドレスやポートの設定をする機能にてIPv6に対応しています。

Apacheは起動時にマシンのポートやアドレスに接続し、リクエストを待ちます。デフォルトでは全てのポート、アドレスが対象となりますが、それを防ぐために「バインディング」で特定のポートやアドレスに限定します。

7 HTTP/2対応 mod_http2 ApacheにおけるHTTP/2の機能は「mod_http2」と呼ばれるモジュールにて実装されており、http/httpsのいずれでも利用可能です。

ApacheのHTTP/2では新機能として「Server Push」が利用できます。「Server Push」はクライアントから来ていないリクエストに対するレスポンスをクライアントに届ける事が出来る機能です。なぜこのような機能があるか?といいますと「殆どの場合でクライアントが利用する」であろうコンポーネントを、事前にこちらから送付するケースなどで利用するためです。

8 FTP接続 mod_ftp Apache(HTTPサーバ)に対するFTPプロトコルによるファイル送受信の機能を提供します。
9 Gzip圧縮 mod_deflate Apache(HTTPサーバ)からの出力をネットワーク越しにクライアントに送る際に「圧縮」や「解凍」をするための機能です。
10 帯域制限 mod_ratelimit 「RATE_LIMIT」と呼ばれるフィルタをを作り、クライアントの帯域(=単位時間当たりのデータ送信量≒通信速度)を制限します。
この絞りはHTTPレスポンス単位で適用されます(IPアドレス/ホスト単位ではない)
11 負荷分散 mod_proxy
mod_proxy_balancer
Apacheのロードバランサー機能(負荷分散)です。方式は「リクエスト回数」に基づく分散と、「トラフィック量」に基づく分散との2種類が選択できます。
12 セッショントラッキング mod_session ユーザー単位のセッション(通信の開始~終了まで)管理を提供します。これによりユーザーのログイン状態を保持したりといった処理が可能となります。

目次にもどる

(1-3) Apacheの使用例

文章だけではイメージが湧きにくい部分もあると思いますので、実際にApacheを使った事例を少しご紹介いたします。

①Apacheのインストール
⇒【導入】CentOS7にApacheをインストール

②Apacheのリバースプロキシの利用
⇒【利用例】ApacheのリバースプロキシによるURLのポート番号非表示

③Apacheの仮想ホスト機能のご紹介
⇒【機能紹介】1つの物理サーバに複数のIPアドレスやドメインを設定する方法

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Apache

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Let’s Encryptの証明書をApacheに適用する手順(CentOS7を例にご紹介)

<目次> (1) Let’s Encryptの証明書をApacheに適用する手順(CentOS7を例にご紹介)  (1-0) 前提事項  (1-1) STEP1: Let’s …

TomcatのURLに付くポート番号8080を非表示にしてドメイン名のみでサイトにアクセスする方法と手順

本記事で実現したい事は下記2点、①URLのポート番号・アプリ名を非表示(リバプロ)と②JSP/Servlet名非表示(web.xml)です。これらを実現する事でブラウザにドメイン名のみ(例:XXXX. …

Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)

<目次> (1) Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)  (1-1) Let’s Encriptで発行した証明書の期限について  (1-2) …

Apacheのリバースプロキシをhttps化する手順について

<目次> (1) Apacheのリバースプロキシをhttps化する手順について  (1-0) STEP0:前提事項の確認  (1-1) STEP1:mod_sslモジュールの導入  (1-2) STE …

ApacheとNginxの違いやそれぞれの特徴について

<目次> (1) ApacheとNginxの違いやそれぞれの特徴について  (1-1) Apacheとは?  (1-2) Nginxとは?  (1-3) Nginxのアーキテクチャについて  (1-4 …

  • English (United States)
  • 日本語
Top