2013年1月22日火曜日

Apache 初期設定

webサーバー構築の際の設定ファイル内容を残します。
要件は以下の内容です。
  • 設定ドメインは「www.aaaaa.org」
  • 「aaaaa.org」にアクセスがあった際は「www.aaaaa.org」へリダイレクトさせる。
  • Basic認証をかける

サイト構築にあたり、Apacheの設定ファイル内容を残していきます。
設定をするファイルは下記の3点です。
  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/httpd-vhosts.conf
  • (ドキュメントルート)/.htaccess

「/etc/httpd/conf/httpd.conf」
httpd.confはApacheの設定ファイルです。
ServerTokens ProductOnly

ServerName aaaaa.org

DocumentRoot "/var/local/www/aaaaa.org"


    Options FollowSymLinks
    AllowOverride All


LogFormat "%{X-Cluster-Client-Ip}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

<Location ⁄server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from all
    AuthType Basic
    AuthName "Authentication is required"
    AuthUserFile /etc/httpd/.htpasswd
    require valid-user
#    Allow from .example.com
</Location>

ExpiresActive On
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"

Header unset Server

AddType image/vnd.microsoft.icon .ico
デフォルト設定に追加・変更を加えた内容は以上です。
項目について順に見ていきます。
  • 【ServerTokens】:サーバが返すレスポンスヘッダを指定します。「ProductOnly」を設定する事により「Server: Apache」のみを返すようになります。
  • ServerName】:サーバが自分を認識するのに使用するホスト名とポートを指定します。URLリダイレクションで使用されますので、取得したドメインを設定します。
  • 【DocumentRoot】:HTMLドキュメントのルートとなるディレクトリを、フルパスで指定します。
  • 【Directory】:指定したディレクトリに適用するディレクティブをグルーピングします。
  • 【LogFormat】:ログファイルのフォーマットを指定します。
    「%{X-Cluster-Client-Ip}i」ロードバランサ経由でWEBサーバにアクセスした際に本来のリモートホストを出力する指定
    「%h」リモートホスト名
    「%l」クライアントの識別子
    「%u」認証ユーザー名
    「%t」時刻
    「%r」リクエストの最初の行の値
    「%>s」最後のレスポンスのステータス
    「%b」送信されたバイト数(ヘッダーは含まず)。0バイトの時は「-」
    「%{Referer}i」どの URL から移動してきたか
    「%{User-Agent}i」ブラウザ情報
  • 【Location】:指定した URL に適用するディレクティブをグルーピングします。
    「server-status」server-statusハンドラを呼び出す際のURLパスです。この場合「http://(ホスト名)/server-status」で呼び出せる設定になります。
    「Order」デフォルトのアクセス制限と、Allow ディレクティブと Deny ディレクティブが評価される順番を指定します。
      Allowが先⇒デフォルト全てのホストからアクセス可能
      Denyが先⇒デフォルト全てのホストからのアクセスを拒否
  • 【ExpiresActive On】:mod_expiresを使用するという宣言。これを設定するとExpiresヘッダーが利用できるようになります。
    「ExpiresByType」キャッシュの保有設定です。
     image/gif "access plus 1 year"⇒gifファイルを1年間キャッシュする設定。
  • 【Header unset Server】:Apacheが出力するServerヘッダを隠す設定です。
  • 【AddType image/vnd.microsoft.icon .ico】:.icoファイルをfaviconファイルとして認識させる設定です。

「/etc/httpd/conf.d/httpd-vhosts.conf」
バーチャルホストの設定をこちらのファイルに記述していきます。
「aaaaa.org」にアクセスがあった場合は「www.aaaaa.org」にリダイレクトさせますので
「www.aaaaa.org」の設定について記載していきます。

    Options -Indexes FollowSymLinks ExecCGI
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /home/data/pwd/.htpasswd
    Require valid-user



    ServerName www.aaaaa.org
    DocumentRoot /home/webcontents/aaaaa.org

【Directory】
 「Indexes」ディレクトリに対してリクエストがあり、そのディレクトリに DirectoryIndex ディレクティブで指定されたファイル(index.html など)が存在しない場合、ファイルの一覧を表示します。
 「FollowSymLinks」シンボリックリンクを使用できます。  
 「ExecCGI」CGIを使用できます。
 またBasic認証をかけるために、以下の設定を記載します。
 「AuthType」BasicでBasic認証を指定します。
 「AuthName」認証領域を設定します。同じ名前に設定した領域は認証を引き継げる設定です。
 「AuthUserFile」パスワードを設定するファイルの指定です。
 「Require」valid-user⇒全てのユーザーに認証の機会を与えます。

 【virtualhost】
 「www.aaaaa.org」についてバーチャルホスト設定をします。

「.htaccess」
「/etc/httpd/conf/httpd.conf」内で「www.aaaaa.org」のDocumentRootに設定したディレクトリ「/home/webcontents/aaaaa.org」に「.htaccess」を設置し、「http://aaaaa.org」にアクセスが来た場合に「http://www.aaaaa.org」にリダイレクトする設定を記述します。
記述内容は以下の通りです。
RewriteCond %{HTTP_HOST} ^aaaaa\.org [NC]
RewriteRule ^(.*)$ http://www.aaaaa.org/$1 [R=301,L]

設定ファイルは以上です。
続いて、Basic認証のユーザー、パスを設定します。
「/etc/httpd/conf.d/httpd-vhosts.conf」内で
AuthUserFile /home/data/pwd/.htpasswd
と設定しましたので、こちらに設定ファイルを作成します。
(webから見えない場所に作成する事が望ましいです)
ここでは以下の内容で設定します。
ユーザー名:user1
パスワード:password4user1
htpasswd -b -c /etc/httpd/conf/.htpasswd user1 password4user1

最後に、確認のために「DocumentRoot」に設定したパス「/home/webcontents/aaaaa.org」内にindex.htmlファイルを設置します。

以上で、初期設定は完了です。
最後に下記の内容を確認しましょう。
  • 「www.aaaaa.com」にアクセスし、Basic認証ダイアログが表示される事
  • 「www.aaaaa.com」にアクセスし、index.htmlの内容が表示される事
  • 「aaaaa.com」にアクセスし、「www.aaaaa.com」にリダイレクトされる事
また、今回編集したファイルの全文は下記になります。



本項目は下記ページを参考にさせて頂きました。
http://www.nina.jp/server/slackware/httpd/httpd.conf.html
http://linuxserver.jp/%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89/httpd/htpasswd.php
http://kazmax.zpp.jp/apache/apache5.html


0 件のコメント:

コメントを投稿