Apache作業でいちいちググるのが面倒なためのメモ

2015年2月10日

Apache Tips サーバー

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

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ