さくらインターネット サポート

 専用サーバ Apache 設定ガイド  

Apache 設定ガイド

Apacheは、UNIXサーバ上で動作するWebサーバプログラムです。
サーバにApacheを導入することで、簡単にWWWサーバを構築することが可能です。
現在Apacheには、1.x系と2.x系の2種類のバージョンが存在しております。

弊社で提供しておりますApacheの設定ファイルのパスです。

  • 設定ファイルのパス

    FreeBSD /usr/local/etc/apache/httpd.conf
    RedHat Linux / Fedora Core / CentOS /etc/httpd/conf/httpd.conf
    Debian Linux /etc/apache/conf/httpd.conf



  • httpd.conf 項目別設定

    • ServerType standalone

      Apacheの起動モードの設定です。通常ではstandaloneに設定されています。
      常に起動して待ちうける状態となります。


    • ServerRoot

      apacheがインストールされている場所を指定します。 通常では変更の必要はありません。


    • Pidfile

      apacheのプロセスIDが収められている場所を指定します。通常は変更の必要はありません。


    • ScoreBoardFile

      スコアボードのファイルが置いてある場所です。


    • TimeOut

      送信する際の処理ごと(CGIの実行や応答処理など)のタイムアウト時間(秒)です。 通常では300秒程度に設定してあります。


    • KeepAlive On

      KeepAlive機能を利用するとクライアントから数回にわたる接続要求が来たとき、接続を切断することなく処理を行うことができ、 再接続による遅延を最小限におさえることが可能になります。 Onにした場合の詳細は、以下のMaxKeepAliveRequest・MinSpareServers・KeepAliveTimeoutで設定します。


    • MaxKeepAliveRequest

      一回の接続で処理できる回数です。 通常は100程度で設定してありますが、負荷が大きいようなら下げることをお勧めします。


    • KeepAliveTimeout

      KeepAliveの稼動時の要求を待ち受ける最大時間を秒数で指定できます。 余りに大きく数値を設定すると、次に接続をしたい人が接続できない状況が発生するかもしれませんが、小さくしすぎると接続回転率は 上がりますが回線をつなげるストレスがたまるかもしれません。通常はデフォルトのままで設定し、場合によって変更するのが良いでしょう。


    • MinSpareServers     MaxSpareServers

      apacheはここで指定された数だけは 常に待機する子サーバを稼動させます。 MinSpareServersの数より少なくなると待機子サーバが一秒に1プロセスずつ新しく起動されます。 MaxSpareServersで設定された数は、稼動しつづけてもかまわない子サーバの最大数です。 通常はMinは5程度、Maxは10程度に設定されていますが、余りに大きく数値を設定するとサーバに多くの 負担がかかりますので様子を見ながら変更することをお勧めします。


    • StartServers

      初回起動時の子サーバの数です。 しかし、このサーバ数は動的に制御されますので(MaxSparServers参照)起動時のサーバの数を調節をしても余り意味はありません。 通常はデフォルトのままでかまいません。


    • MaxClients

      最大接続数を指定します。 この数を越えるリクエストは待たされることになります。 普段からサーバが重い場合はこの数をへらして、接続する一人一人の負担をへらしてみるとよいでしょう。


    • MaxRequestsPerChild

      apacheの子サーバはここで指定された数のリクエストを処理し終えると、消滅します。 0に設定すると休まずに稼動しつづけることを意味します。 子サーバに処理をさせつづけると、異常動作を起こしたりすることがあります。 それを避けるためにも、必ずこの設定はするようにしましょう。


    • Port

      接続を待ち受けるポート番号を指定します。 HTTPでは通常80番ポートを使用しますので、特に変更の必要はありません。


    • User     Group

      apacheの実効ユーザIDとグループIDを指定します。 通常は nobody / nobody で設定していますが、複数名でサーバを使用する場合はセキュリティ上の問題から、特定のユーザおよびグループを設定した方がよいでしょう。


    • ServerAdmin

      サーバ管理者のEmailアドレスを指定します。 クライアントがサーバへ接続する際にエラーが-起こったとき(NotFoundなど)のエラーメッセージに記載されるEmailアドレス ですので、「Webmaster@あなたのドメイン名」などの名前にしておくと良いでしょう。


    • ServerName

      名前解決が行えるホスト名、もしくはIPアドレスを指定します。


    • DocumentRoot

      HTMLなどのファイルを置く場所(ディレクトリ)です。 「http://****/ 」でアクセスされたときファイルにアクセスします。


    • <Directory ディレクトリ名>  〜   </Directory>

      指定した任意のディレクトリ、またはそのディレクトリ以下に対して特別な命令を埋め込むことができます。



  • バーチャルホスト設定

      Apacheのバーチャルホストとは、複数のドメインで一つのサーバを共有して利用することを可能にします。

    • ドメイン名ベース

       example.co.jpという名前を持つサーバに対して一つのIPアドレスが割り当てられているとします。 そして、そのIPに対し二つのドメイン名 www.example.co.jpと www.sub.example.co.jpを持っており、 ドメイン名毎に違うページを表示したい場合の設定を行ってみます。

      ドメイン名ベースのバーチャルホストを使うには、そのホストへの リクエストを受け付けるサーバの IP アドレス (もしかしたらポートも) を指定する必要があります。 これは NameVirtualHost ディレクティブで設定します。
      <VirtualHost 割り当てられたIPアドレスを入れてください。>
          DocumentRoot /home/htdocs/
          ServerName www.example.co.jp
          ErrorLog /usr/local/apache/logs/error_log
          CustomLog /usr/local/apache/logs/access_log
      </VirtualHost>

      <VirtualHost 割り当てられたIPアドレスを入れてください。>
          DocumentRoot /home/sakura/
          ServerName www.sub.example.co.jp
          ErrorLog /usr/local/apache/logs/error_log
          CustomLog /usr/local/apache/logs/access_log
      </VirtualHost>

    • IPアドレスベース

       www.example.co.jp と www.sub.example.co.jp というホスト名を持っており、 www.example.co.jp には 192.168.0.1を、www.sub.example.co.jp には 192.168.0.2 を 割り当てます。

      <VirtualHost 192.168.0.1>
          DocumentRoot /home/htdocs/
          ServerName www.example.co.jp
          ErrorLog /usr/local/apache/logs/error_log
          CustomLog /usr/local/apache/logs/access_log
      </VirtualHost>

      <VirtualHost 192.168.0.2>
          DocumentRoot /home/sakura/
          ServerName www.sub.example.co.jp
          ErrorLog /usr/local/apache/logs/error_log
          CustomLog /usr/local/apache/logs/access_log
      </VirtualHost>
      バーチャルホストを設定する場合、サーバ本来のドメインについてもバーチャルホストの記述を 設定して頂く必要がございます。



  • Apache FAQ

    • index.htmlを置いていないとディレクトリ構造が丸見えになってしまう

      Optionsに Indexes と指定しますと、ディレクトリ構造を表示します。 httpd.confの部分からIndexesを削除します。

      <Directory>
          Options Indexes
          AllowOverride None
      </Directory>


  •