LoginSignup
0
0

Apatch備忘録

Posted at

はじめに

ミドルウェアの学習進める中でApatchについて調べたことを備忘録的にまとめます。

Apachとは

公式ドキュメントより引用

The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. The project is jointly managed by a group of volunteers located around the world, using the Internet and the Web to communicate, plan, and develop the server and its related documentation. This project is part of the Apache Software Foundation. In addition, hundreds of users have contributed ideas, code, and documentation to the project. This file is intended to briefly describe the history of the Apache HTTP Server and recognize the many contributors.

ざっくりまとめるとApatchとは

堅牢なHTTPサーバーの実装:Apatchは、信頼性の高い、商用レベルで使用できる品質を持っています。
多機能性:様々な機能を備え、幅広い用途に対応できる設計。
自由に利用可能なソースコード:オープンソースであり、誰でも無料でソースコードにアクセスし、利用することが可能です。

特徴

  • オープンソース:Apacheは自由に使用、改変、配布が可能です。
  • モジュラー設計:様々な機能をモジュールとして追加・削除できます。
  • クロスプラットフォーム:Linux, Windows, macOSなど多くのOSで動作します。

モジュラー設計

概念

モジュラー設計とは、Apacheウェブサーバーが特定の機能を独立したモジュールとして提供し、それらを組み合わせて使用できる設計のことを指します。このアプローチにより、サーバーのパフォーマンスを最適化し、必要な機能のみをロードすることができます。

主要なモジュール

  • mod_ssl:SSL/TLSサポートを提供し、セキュアな通信を実現します。
  • mod_rewrite:URLの書き換えやリダイレクトを行うための強力なツールです。
  • mod_security:Webアプリケーションファイアウォールとして機能し、セキュリティを強化します。
  • mod_proxy:プロキシサーバーとしての機能を提供し、リバースプロキシやロードバランシングの設定が可能です。

Apacheの内部構造

  • コアアーキテクチャ
    マルチプロセス/マルチスレッドモデル:Apacheはマルチプロセスとマルチスレッドのモデルを採用しており、これにより同時に多数のリクエストを効率的に処理することができます。このモデルには、プリフォーク、ワーカー、イベントなど、異なるマルチプロセス/スレッド方式があります。

  • リクエスト処理の流れ:クライアントからのリクエストは、Apacheによって受信され、適切なモジュールによって処理されます。この処理は、認証、URL書き換え、コンテンツ提供など、

  • 主要コンポーネント

    • コアサーバー:基本的なリクエスト処理とレスポンス送信を担当します。コアサーバーは、リクエストを解析し、適切なモジュールに転送する役割を果たします。
    • モジュール:Apacheの機能は、多くのモジュールによって拡張されます。これらのモジュールは、セキュリティ、ルーティング、コンテンツの変換など、特定の機能を提供します。
    • 設定ファイル:httpd.conf と .htaccess などの設定ファイルを通じて、Apacheの挙動をカスタマイズできます。これらのファイルは、サーバーの全体設定や個別のディレクトリの挙動を制御するために使われます。

インストールと設定

sudo apt-get update
sudo apt-get install apache2

基本設定
/etc/apache2/apache2.conf ファイルを編集して、基本的なサーバー設定を行います。

テスト
ブラウザで http://your_server_ip にアクセスし、Apacheのデフォルトページが表示されることを確認します。

なにやってるの?

ウェブページのホスティング
Apacheは静的(HTML、CSS、JavaScriptファイルなど)や動的(PHP、Perl、Pythonを使用したアプリケーション)なコンテンツをインターネット上で提供します。ユーザーがブラウザで特定のURLにアクセスすると、Apacheは適切なウェブページを返します。

HTTPリクエストの処理
ユーザーのブラウザからのHTTPリクエスト(ウェブページの要求など)を受け取り、適切なレスポンス(ウェブページやエラーメッセージなど)を送り返します。

セキュリティの提供
SSL/TLSを使用した安全な通信をサポートし、ウェブサイトへの安全なアクセスを保証します。また、アクセス制御や認証機構を提供して、ウェブコンテンツのセキュリティを強化します。

モジュールによる機能の拡張
様々な追加モジュールを導入することで、URLの書き換え、コンテンツ圧縮、キャッシュなどの追加機能を提供できます。

バーチャルホスティング
単一のApacheサーバー上で複数のウェブサイトをホストし、それぞれに異なるドメイン名や設定を割り当てることが可能です。

ロギングと監視
アクセスログやエラーログを生成し、ウェブサイトの訪問者情報や発生した問題を記録します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0