Apacheの基本操作のまとめ

dev

サーバの起動・再起動・停止などの操作

サーバを起動・再起動・停止する

Apache サーバの起動などには apachectl コマンドを使用します。command 部分に start,restart,stop を入れることで起動、再起動、停止ができます。

apachectl <command>

設定だけ変更したい

設定ファイルの変更を行った後、現在のコネクションを保ったまま再起動したいときには graceful コマンドを使います。

apachectl graceful

もし restart, graceful を実行したときに httpd が起動していないければ改めて起動されます。また、設定ファイルに文法的な誤りがあって起動できないのを避けるために、事前に設定ファイルの文法チェックが行われます。

設定が合っているか確認したい

設定ファイルの文法チェックだけを行いたいときは configtest コマンドを使います。

apachectl configtest

各種設定

Apacheサーバの設定ファイルとファイルの場所

最も基本的な設定ファイルは httpd.conf でデフォルトでは /etc/httpd/conf/httpd.conf に配置されています。

その他に設定ファイルがある場合は、httpd.conf の中で、Include または IncludeOptional で指定します。

IncludeOptional    /conf.d/*.conf

上記の設定は、conf.d ディレクトリ以下の拡張子が .conf である全てのファイルを設定ファイルとして読み込むという設定です。設定を確認するときは conf.d ディレクトリも確認してください。

IPによるアクセス制限

特定のパス以下へのアクセスをコントロールしたい場合は、設定ファイルに下記のように書くことで制限を設けることができます。下記ではホワイトリスト形式で指定の IP からのアクセスのみを許可している例です。

<LocationMatch /location-name>
    SetHandler handler-name
    Order Deny,Allow
    Deny from all

    Allow from xxx.xxx.xxx.xxx
</LocationMatch>

上記では許可された IP 以外からのアクセスを禁止していますが、逆に特定の IP からのアクセスを禁止することもできます。また IP の指定にはサブネットマスクを使用できるので、特定のネットワーク範囲の複数のIPをまとめて指定することも可能です。

プロキシによるロードバランシング

Apache を経由して IP が xxx.xxx.xxx.xxx と xxx.xxx.xxx.yyy のアプリケーションサーバの 8080 ポートにロードバランシングしたい場合、下記のように Proxy ディレクティブを設定します。

<Proxy balancer://cluster-lb/>
    BalancerMember http://xxx.xxx.xxx.xxx:8080
    BalancerMember http://xxx.xxx.xxx.yyy:8080
</Proxy>

次にロードバランシングの対象になるパスを設定する。下記のように ProxyPass を設定すると /foo へのアクセスが、上記で balancer://cluster-lb/ として指定したアプリケーションサーバ以下の /index にプロキシされます。

ProxyPass         /foo balancer://cluster-lb/index
ProxyPassReverse  /foo balancer://cluster-lb/index

あるいは、正規表現を使って下記のように設定することもできます。下記の例では /api 以下にアクセスが
あったときに cluster-lb/api 以下の同じパスにプロキシしています。

ProxyPassMatch ^/api(/.*)?$             balancer://cluster-lb/api$1

以下はプロキシしないことを明示的に指定する設定例です。

ProxyPass /robots.txt !
タイトルとURLをコピーしました