読み方:あぱっしゅ《アパッチ族のような、の意から》パリなどの、ならず者のこと。Weblio国語辞典では「APACHE」の意味や使い方、用例、類似表現などを解説しています。">

「APACHE」の意味や使い方 わかりやすく解説 Weblio辞書 (original) (raw)

Apache」はこの項目へ転送されています。そのほかの用法については「アパッチ (曖昧さ回避)」をご覧ください。

Apache HTTP Server

Apache HTTP Server の公式ロゴマーク。
開発元 Apacheソフトウェア財団
初版 1995年 (31年前) (1995)[1]
最終版 2.4.66 - 2025年12月4日 (40日前) (2025-12-04) [±]
リポジトリ github.com/apache/httpd
プラットフォーム クロスプラットフォーム
種別 Web・APサーバー、Webサーバ
ライセンス Apache-2.0
公式サイト httpd.apache.org
テンプレートを表示

Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、Apache License2.0の条件でリリースされる自由オープンソースクロスプラットフォームWebサーバソフトウェアである。Apache はApacheソフトウェア財団の支援のもと、開発者のオープンコミュニティによって開発・保守されている。

Apache HTTP サーバのインスタンスの大部分は Linuxディストリビューション上で動作するが、現在のバージョンは Microsoft Windows や様々な Unixライクなシステム上でも動作する。過去のバージョンでは、OpenVMSNetWareOS/2メインフレームへの移植を含む他のオペレーティングシステムでも動作した。

元々は NCSA HTTPdサーバをベースにしていたが、NCSAコードの作業が停滞した後、1995 年初頭にApache の開発が始まった。Apache はWorld Wide Webの最初の成長において重要な役割を果たし、支配的な HTTP サーバとしてすぐに NCSA HTTPd を追い抜き、1996 年 4 月以来、最も人気のあるサーバであり続けている。2009年には、1億以上のウェブサイトにサービスを提供する最初のウェブサーバーソフトウェアとなった。2026年現在、Nginxが33.3%、Apacheが24.4%のシェアを占めている[2]

歴史

1995年

Webサーバソフトウェア欧州原子核研究機構 (CERN) のティム・バーナーズ=リーが開発したCERN httpd米国立スーパーコンピュータ応用研究所 (NCSA) が開発したNCSA HTTPdの2種類があった。NCSA HTTPdは初めてCGIを採用するなど、非常に普及していたが、その後ほとんどメンテナンスが行われなくなり、放置されていた。そこで、何人かの有志が改良とサポートを行うためのグループを作り、自分たちを「Apache Group」と名付けた。しかし、彼等もその後プロジェクトに興味を失ってしまい、再度放置されかけた。

1999年以降

放置されかけたのち、1999年にユーザーの一人だったBrian Behlendorfが自分のサーバを使ってユーザーのためのメーリングリストを立ち上げた。これが現在のApacheソフトウェア財団の母体になっている。ただし、現在のApacheのソースコードはApacheソフトウェア財団によって完全に書き換えられており、NCSA HTTPdのコードは残っていない。

特徴

サポート

バージョン 初版 最新版
サポート終了:1.3 1998-06-06[3] 2010-02-03 (1.3.42)[4]
サポート終了:2.0 2002-04-06[5] 2013-07-10 (2.0.65)[6]
サポート終了:2.2 2005-12-01[7] 2017-07-11 (2.2.34)[8]
現行バージョン:2.4 2012-02-21[9] 2025-12-04 (2.4.66)[10]
凡例 サポート終了 サポート中 現行バージョン 最新プレビュー版 将来のリリース

2018年3月現在、Apacheの公式ページでは2.4系のみを推奨リリースとしている [11]

1.3系、2.0系、2.2系を含む古い系列は、アーカイブ・サイト[12]からダウンロードできる。

モジュールによる機能追加

Apacheの機能はモジュールを追加することで拡張できる。Apacheの核となる「Core」がまずあり、そこへモジュールを追加して機能を拡張する。モジュール名は慣習的に「mod_XXX」と付けられる。XXXは機能の概要名である。例えば「mod_dir」「mod_alias」「mod_setenvif」などとなる。

モジュールは「静的リンク」または「動的リンク」により追加できる。静的リンクとは、Apacheの実行ファイルそのものにモジュールを組み込む方式である。つまりApacheとモジュールはバイナリ的に一体化して動作する。動的リンクとは、モジュールを別ファイルとして作成し、必要に応じてモジュールのファイルから機能を呼び出す方式である。この機能を「DSO(Dynamic Shared Object=動的共有オブジェクト)」と呼ぶ。動的リンクの機能を利用するためには、あらかじめ「mod_so」モジュールを静的リンクしておく必要がある。

動的リンクはモジュール機能の呼び出しで静的リンクよりも負荷が高くなる(オーバーヘッドがかかる)デメリットがあるが、再起動のみでモジュールを組み入れたり外したりできるメリットがある。 逆に静的リンクは高速にモジュール機能を呼び出せるが、モジュールを入れたり外すためにはApache本体を再コンパイルする必要がある。

プロセスの挙動 (MPM)

Apacheは数多くのOSをサポートするために、MPM(マルチ プロセッシング モジュール)という仕組みをとっている。これにより、利用するOSに最適化されたApacheを容易に組み込むことができる。

Unix系においては、プロセススレッドの挙動が異なる3つのMPMが利用できる。

prefork

preforkは「スレッドを使わず、先行して fork を行なうウェブサーバ」である。Apacheは伝統的に親プロセスを1つ持ち、クライアントからリクエストが来ると自分自身をコピーして子プロセスを起動する(これをforkという)。実際の通信は子プロセスが受け持つ。そのため、通信している数だけ子プロセスが起動することになる。この時、クライアントからリクエストを受けたあとでforkするとfork完了までに待ち時間が出来て通信のパフォーマンスが遅くなる。そのため、あらかじめいくつかの子プロセスをforkしておき、forkの待ち時間をなくす方式をとっている。この方式が「prefork」である。すなわち“pre(=前もって・先行して)”forkしておく、という意味である。

preforkのメリットは、forkされた子プロセス1つ1つが対応する通信を受け持つため、ある子プロセスが何らかの原因でフリーズしたとしても、他の子プロセスには影響を及ぼすことが無く通信を継続できる。このため安定した通信を行うことが出来る。一方、クライアントが多くなればなるほど子プロセスの数も増えるため、使用メモリ量やCPU負荷が比例的に増大していく。preforkで多数のクライアントをさばくには、それに応じた大量のメモリと高速なCPUが必要となる。

worker

workerは「マルチスレッドとマルチプロセスのハイブリッド型サーバ」である。Apacheの子プロセス1つ1つがマルチスレッドで動作し、スレッド1つが1つのクライアントを受け持つ方式である。すなわち、1つのプロセスがマルチスレッドを利用して複数の通信の面倒を見る。この点で1つのプロセスが1つの通信をみるpreforkとは異なる。また多くの子プロセスを起動せずに済むため、メモリの使用量も減らすことが出来る。

event

eventはworkerの一種でマルチスレッドで動作する。workerとの違いはKeep-Alive(持続的接続)の処理方法である。workerやpreforkは、Keep-Aliveの持続性を保つために一度利用したスレッド・プロセスをそのまま待機させている。しかしクライアントからの接続が持続的に行われる可能性は保証されているわけではないから、待機していること自体が無駄になる可能性もある。そこで、Keep-Aliveの処理を別のスレッドに割り振って通信を処理する。

この方式は長らく実験的サポートであったが、2.4.1にて正式に採用された[13]

このほか、Netware、OS/2、Windows向けにそれぞれ専用のMPMが用意されている。

利用形態

Apacheは、主にワールドワイドウェブ上で静的または動的なコンテンツを公開するために使われる。多くのウェブアプリケーションは、Apacheが提供する環境と機能を想定して設計されている。また、ApacheはLAMP (Linux、Apache、MySQLPHP/Perl/Python) や LAPP (Linux、Apache、PostgreSQL、PHP/Perl/Python) と呼ばれる非常に人気のあるウェブサーバコンポーネントの一つでもある。読み方はそれぞれLAMP(ランプ)、LAPP(ラップ)である。さらに、Apacheはいろいろな商用パッケージ、例えばOracle Databaseに組み込まれており、macOSNetWare 6.5の標準Webサーバにもなっている。

特殊な形態

Apacheでは、FreeBSDのカーネルと連動し、最高の性能を引き出す特殊な動作形態をサポートしている[14][15]。 これはFreeBSDをHTTPサーバに特化するという運用形態を想定したもので、FreeBSD及びApacheの両者に設定が必要であり、共にインストール直後の標準設定ではサポートされない。

基本的な動作は、LinuxのTUX web serverやWindowsのInternet Information Servicesなどに近い実装であり、通信バッファのカーネルからの直接的な読込やkqueueなど多岐にわたり、一部のみ利用ということも可能になっている。

同形態はLinuxにおけるサポートも検討されたが、あまりに特殊であるため未実装となっている。[_独自研究?_]

脚注

[脚注の使い方]

  1. ^About the Apache HTTP Server Project”. Apacheソフトウェア財団. 2013年5月30日閲覧。
  2. ^Comparison of the usage statistics of Nginx vs. Apache for websites”. W3Techs. 2026年1月11日閲覧。
  3. ^ “Announcement: Apache 1.3.0 Released !” (英語). 6 June 1998. 2015年1月6日閲覧.
  4. ^ “Apache HTTP Server 1.3.42 released (final release of 1.3.x)”. apache.org (英語). 2020年5月27日閲覧.
  5. ^ “Official Release: Apache 2.0.35 is now GA” (英語). 6 April 2002. 2015年1月6日閲覧.
  6. ^ “[Announcement] Apache HTTP Server 2.0.65 Released”. apache.org (英語). 2020年5月27日閲覧.
  7. ^ “Apache HTTP Server 2.2.0 Released” (英語). 1 December 2005. 2015年1月6日閲覧.
  8. ^ “[Announce] Apache HTTP Server 2.2.34 Released”. apache.org (英語). 2020年5月27日閲覧.
  9. ^ “[ANNOUNCEMENT] Apache HTTP Server 2.4.1 Released” (英語). 21 February 2012. 2015年7月17日閲覧.
  10. ^ “Apache HTTP Server 2.4.66 Released”. apache.org (英語). 2025年12月20日閲覧.
  11. ^Welcome! - The Apache HTTP Server Project”. 2018年3月17日閲覧。
  12. ^archive.apache.org”. 2018年3月17日閲覧。
  13. ^Apache HTTP Server、6年ぶりのメジャーアップデート版「2.4.1」リリース”. SourceForge.JP (2012年2月22日). 2012年2月23日時点のオリジナルよりアーカイブ。2012年2月23日閲覧。
  14. ^accf_http”. 2013年6月5日閲覧。
  15. ^Apache コア機能 AcceptFilter ディレクティブ”. 2016年10月10日閲覧。

関連項目

ポータル FOSS

ウィキメディア・コモンズには、**Apache HTTP Server**に関連するカテゴリがあります。

外部リンク

Apacheソフトウェア財団
トップレベルプロジェクト Accumulo(英語版ActiveMQ Airflow Ambari(英語版Ant Aries(英語版Arrow Apache HTTP Server APR Avro Axis Axis2 Beam Bloodhound(英語版) Brooklyn(英語版) Buildr(英語版) Calcite(英語版) Camel(英語版Cassandra Cayenne(英語版) Chemistry(英語版) CloudStack(英語版Cocoon Cordova CouchDB cTAKES(英語版) CXF(英語版Derby Directory(英語版Drill Druid(英語版) Empire-db(英語版) Felix(英語版Flex Flink(英語版) Flume(英語版) FreeMaker(英語版Geronimo Giraph(英語版) Gump(英語版Hadoop HBase Helix(英語版Hive Impala(英語版) Jackrabbit(英語版James Jena(英語版) Jini(英語版) JMeter(英語版Kafka Kudu(英語版) Kylin(英語版Lucene Mahout Maven MINA(英語版) mod perl(英語版) MyFaces(英語版NetBeans Nutch(英語版) NuttX(英語版) OFBiz(英語版) Oozie(英語版OpenEJB OpenJPA OpenNLP OpenOffice ORC(英語版) PDFBox(英語版) Parquet(英語版) Phoenix(英語版POI Pig(英語版) Pinot(英語版Pivot Qpid(英語版Roller RocketMQ(英語版) Samza(英語版) ServiceMix(英語版) Shiro(英語版) SINGA(英語版) Sling(英語版Solr Spark Storm(英語版SpamAssassin Struts 1 Struts 2(英語版Subversion Apache Superset SystemDS(英語版Tapestry Thrift Tika(英語版Tomcat Traffic Server(英語版) Turbine(英語版) UIMA(英語版Velocity Wicket Xalan Xerces XMLBeans Yetus(英語版ZooKeeper
Commons BCEL(英語版) BSF(英語版Collections Daemon(英語版DBUtils Email IO Jelly(英語版Lang Apache Commons Logging(英語版Math
Incubator MXNet(英語版) Taverna(英語版
その他のプロジェクト Apache Batik Chainsaw(英語版FOP Ivy(英語版log4j
Attic Abdera(英語版) Apex(英語版AxKit Beehive(英語版) Bluesky(英語版iBATIS c++ Standard Library(英語版) Cactus(英語版) Click(英語版) Continuum(英語版) Deltacloud(英語版) Etch(英語版) Excalibur(英語版) Forrest(英語版) Hama(英語版Harmony HiveMind(英語版Jakarta Lenya(英語版) Marmotta(英語版) ODE(英語版) Shale(英語版) Slide(英語版) Shindig(ハンガリー語版) Stanbol(英語版) Tuscany(英語版) Wave(英語版) Wink(英語版XML
ライセンス Apache License
Category Commons
Webインタフェース
サーバサイド 通信プロトコル HTTP v2 v3 暗号化 WebDAV CGI FCGI WebSocket API C ASAPI C ISAPI Java Servlet Python WSGI Perl PSGI トピックス Webサービス アプリケーションサーバ リソース (WWW) サーバサイドスクリプト Webhook
クライアントサイド Browser APIs ActiveX Browser Helper Object Google Native Client WebAssembly Web API W3C Canvas IndexedDB SVG WebGPU WebRTC WebSocket WebVTT ウェブストレージ Web Worker XMLHttpRequest オーディオ ビデオ クロノス WebCL WebGL その他 Gears トピックス Ajax DHTML Mashup
関連項目 ウェブページ 静的 動的 ウェブアプリケーション RIA SPA PWA
ウェブユーザインタフェース
Webサーバソフトウェア
比較(英語版
市場が大きいオープンソースソフトウェア Apache HTTP Server nginx IIS IIS Express LiteSpeed Web Server(英語版
市場が小さいオープンソースソフトウェア AOLserver(英語版Caddy Caudium Cherokee(英語版GlassFish Gunicorn H2O Hiawatha(英語版iPlanet Jetty JEUS(英語版) Jexus(英語版JOnAS lighttpd Mongoose(英語版) Mongrel2(英語版) Monkey(英語版) NaviServer(英語版) NetWeaver(英語版) OpenResty(英語版Passenger Paste(英語版POCO Puma PyGopherd(英語版) Resin(英語版) Roxen(英語版thttpd Tomcat Tornado Traffic Server(英語版Twisted WebLogic(英語版WEBrick WebSphere WildFly Yaws(英語版Zope
歴史的 Boa(英語版CERN httpd Mongrel(英語版NCSA HTTPd Xitami(英語版) Zeus(英語版
典拠管理データベース
全般 VIAF
国立図書館 ドイツ フランス BnF data チェコ 2
その他 IdRef