ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. サーバー
  4. Apacheとは?導入方法とメリットについて解説

Apacheとは?導入方法とメリットについて解説

  • サーバー
  • テクノロジー
公開日時:   更新日時:
Apacheとは?導入方法とメリットについて解説
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    Apacheエンジニア 案件・求人一覧はこちら

    Apacheとは?


    Apache(アパッチ)は、Apache HTTP Server というソフトウェアの略称です(単に Apacheとも呼ばれます)。Apacheは1995年4月に発表された、Webサーバーソフトウェアです。Webサーバーソフトウェアとは、HTTPリクエストを送ったときに、何らかのレスポンスを返すプログラムのことを指します。netcraftによれば、2020年4月時点で全世界の約25%のシェアを占め、世界で2番目に利用されています。インターネット上で、動画やSNSを利用したり、企業や官公庁の公式サイトで情報を入手したりする場合には、必ずWebサーバーソフトウェアのお世話になります。そのうち25%ものサービスでApacheがバックエンドを担当しています。感覚的に理解しがたいかもしれませんが、まぎれもない事実です。今回の記事では、導入方法を紹介した後、簡単な使用例を紹介していきます。

    Apacheを利用するメリット

    現在主要なWebサーバーソフトウェアはNginxとApacheです。その2つを比較して、Apacheを利用するメリット・デメリットを紹介します。

    メリット① 信頼性の高さ

    ApacheもNginxもOSSです。OSSの信頼性を高める要因は、利用者数や開発年数などにあります。この点で、比較的最近開発されたNginxに比べ、Apacheは情報の蓄積量や知名度の点で優れています。

    メリット② 簡単に拡張できる

    Apacheは、「モジュール」を使用することで必要な機能を簡単に追加できます。公式が出しているモジュールだけでなく、インターネット上で配布されているモジュールや、自分で開発したモジュールを利用することができます。

    デメリット① C10K問題

    Apacheには「C10K問題」と呼ばれる問題が発生しています。「C」は「Client(クライアント)」、「10K」は「1万」を表し、ネットワーク性能やハードウェアに問題がなくても、同時接続数がある一定数を超えたタイミングでサーバーがパンクしてしまう問題のことを指します。Nginxは、これに耐えうるように設計されています。

    デメリット② 大量の処理に弱い

    これはC10K問題にも通じていますが、前提として、Apacheはマルチプロセス、Nginxはシングルスレッドかつイベントループ方式を採用しています。マルチプロセスというのは、簡単に言うと大量のタスクを同時に処理してしまおうということです。これにより大量のアクセスが行われると、プロセスが同時に蓄積し負荷が大きくなってしまうというデメリットを持っています。対してシングルスレッドというのは1つずつ処理を完了させることですが、もう一つイベントループ方式と言って重い処理を後回しにできる機構を備えています。そのおかげで、重い処理によるサイトの停止を防ぐことができます。下記のサイト(英語)にイベントループについての分かりやすい説明が乗っていますので、興味があれば読んでみてください。

    Apacheの導入方法

    今回はApacheの導入方法を、Windows 10環境下で紹介していきます。公式サイトによるとWindows 2000以降であれば最新であるApache 2.4に対応しているようです。

    Apacheのダウンロード

    Apache自体は、コンパイルされたソフトウェアを提供せず、ソースコードのみを提供しています。そのため、Windowsであれば、公式サイトからでなく誰かがビルドしたものをダウンロードして利用することが一般的です。以下のサイトにアクセスし、最新バージョンのbinariesのzipファイルをダウンロードしてください。

    Apacheのインストール

    Apacheのインストールは、ダウンロードした圧縮ファイルを展開し、配置するだけで完了します。ダウンロードした「httpd-2.4.43-win64-VS16.zip」ファイルを解凍したのち、任意のディレクトリに配置して下さい。

    http.confファイルの修正

    Apacheには設定ファイルであるhttp.confファイルが存在しています。修正を行う前のhttp.confファイルをコピーし、念のためにバックアップとして保存しておいてください(不要であれば省略してください)。Apacheの設定ファイルは[インストールしたディレクトリ]\Apache24\conf\に入っていますので、任意のテキストエディタで起動しそれを編集します。

    インストールディレクトリを修正する

    最初に、ファイル内でSRVROOTを検索してください。以下のような記述が出てきます。## ServerRoot: The top of the directory tree under which the server's# configuration, error, and log files are kept.## Do not add a slash at the end of the directory path. If you point# ServerRoot at a non-local disk, be sure to specify a local disk on the# Mutex directive, if file-based mutexes are used. If you wish to share the# same ServerRoot for multiple httpd daemons, you will need to change at# least PidFile.#Define SRVROOT "c:/Apache24"ServerRoot "${SRVROOT}"この中の、Define SRVROOT "c:/Apache24"という記述の"c:/Apache24"という部分を自分がApacheをインストールしたディレクトリに変更してください。

    ポート番号を設定する

    次にポート番号の設定を確認します。通常変更する必要はありませんが、複数のWebサーバーを同一サーバーで動かしている場合などで、ポート番号を変更する必要が出た場合には、この設定を変更してください。ファイル内でListenを検索してください。以下のような記述が出てきます。## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the # directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78:80Listen 80もし変更が必要であれば、Listen 8080を変更します。

    サーバー名を設定する

    最後にサーバー名の設定を行います。ファイル内でServerNameを検索してください。以下のような記述が出てきます。## ServerName gives the name and port that the server uses to identify itself.# This can often be determined automatically, but we recommend you specify# it explicitly to prevent problems during startup.## If your host doesn't have a registered DNS name, enter its IP address here.##ServerName www.example.com:80ServerNameでは、サーバー自身を表すホスト名・ポート番号を設定します。インストールされた段階ではコメントアウトされており設定されていません。設定する場合、ホスト名+ポート番号で設定します。例えば「www.example.com:80」のように設定します。もしポート番号を省略した場合は、サーバーへのリクエストが来ているポート番号が使用されます。設定する場合は、行頭に #でコメントアウトがなされているので#を消去して設定を記述します。設定ファイルの修正が全て終わりましたら、設定ファイルを保存しておくことを忘れないでください。

    Apacheを導入してみよう

    今回はApacheの歴史や利点、導入方法を紹介しました。Apacheはさまざまな拡張が可能で、Web上の環境構築に役立ちます。学習用の記事や動画も出回っているので、いろいろ挑戦してみてください。

    Apacheエンジニア 案件・求人一覧はこちら

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    Apache新着案件New Job

    CCNA取得者歓迎!案件・求人はこちら