Webサーバーの定番
「Apache」ですが、サーバー管理をしていて、このモジュールの設定変更など、行う機会が多いので、
都度ググって作業していたのが、非常に面倒になってきたので、ここらでちゃんとメモしておこうと思いました。
初期構築
インストール
# Debian系
$ apt-get install apache2
# CentOS系
$ yum -y install httpd
.htaccessを有効にする。
$ vi /etc/apache2/sites-available/default
AllowOverride None
↓に変更
AllowOverride All
# 例)
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
apacheモジュールを有効にする。
$ a2enmod rewrite
# ※手作業でやる場合
$ ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
運用におけるコマンド
confファイルの設定変更を行った場合の作業
apachectlコマンドは、gracefulと同じ内容も含まれます。
# confファイルの記述エラー確認
$ apachectl configtest
# 緩やかな停止
$ apachectl -k graceful-stop
# 急な停止
$ apachectl -k stop
# 緩やかな再起動(graceful)
$ apachectl -k graceful
# 急な再起動
$ apachectl -k restart
設定変更の際にapacheを再起動する
# reboot(debian)
$ /etc/init.d/apache2 restart
# reboot(CentOS)
$ /etc/init.d/httpd restart
# graceful(debian)
$ apachectl -k graceful
# gracefil(CentOS)
$ /etc/init.d/httpd graceful
サブドメインやポートの設定追加
Apacheは、ドメイン(サブドメイン)、ポート(プロトコル)で、ルートディレクトリや各種設定を個別に振り分けることが可能です。
DNSやFirewallやローカルIPの設定などは、ちゃんと行っている事を前提として、管理方法などを記述します。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/example.com
<Directory />
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
「sites-avalable」はソース元管理ディレクトリで、本番用は「sites-enabled」になります。
本番用は管理用のファイルをシンボリックリンクで設置しているので、分ける必要がないという管理者もいますが、利用と停止をファイル管理で行える利点もあるので、シンボリック運用した方がいいでしょう。
また、本番用の中に複数の設定データが作られますが、ファイル名の順に設定が読み込まれて、設定が重複していた場合、後で読み込まれた設定が無効になるため、ファイル名に付番する等、優先順位をつけて管理することをオススメします。
また、管理用での設定は、細かく1サブドメイン、1ポート毎に1ファイル管理で行ったほうが格段に管理しやすいです。
リバースプロキシ設定
1つのグローバルIPアドレスで、サブドメイン毎に複数のサーバーを振り分ける場合に、リバースプロキシ(mod-proxy)を設定します。
この場合のインフラ構成等は、事前にクリアしている事を前提とします。
※あくまでapacheの設定のみ記述します。
1、サーバーA、サーバーBの準備
どちらもapacheが稼働する状態。
proxy設定するのはサーバーAのみ
2、サーバーAのapache設定
/etc/sites-avalable/内に「proxy(任意)」ファイルを作成
※default内に記述しても良い。
/etc/sites-enabled/内に「proxy」シンボリックリンクを作成
3、モジュール設定
proxy.conf
proxy.load
proxy_http.load
proxy_balancer.conf
proxy_balancer.load
4、/etc/sites-abaleble/proxy をviで記述
<virtualhost *:80>
ServerName proxy.hoge.com
ProxyPreserveHost On
ProxyPass / http://192.168.1.16/
ProxyPassReverse / http://192.168.1.16/
</virtualhost>
5、/etc/mods-abalable/proxy.conf をviで記述
<ifmodule mod_proxy.c>
ProxyRequests On
<proxy *>
Order deny,allow
</proxy>
ProxyVia On
</ifmodule>
6、apacheの再起動
/etc/init.d/apache2 restart
0 件のコメント:
コメントを投稿