2010 8月23日

Apache でIPベースのバーチャルホストを使う場合の注意点

VirtualHostディレクティブを利用する。VirtualHostディレクティブは、

<VirtualHost IPアドレス>

</VirtualHost>

のように記述し、これが1ホスト分のブロックとなる。つまり、バーチャルホストでホスティングしたいホストの数だけ、このブロックを記述すればよい。

IPベースで注意する点は、<VirtualHost IPアドレス>のIPアドレスを各ブロックで異なるものにしなければならないということである。Apacheは、このIPアドレスでホストの設定のブロックを識別するからである。

バーチャルホストによる複数サイトの同時運用 より

つまり1つのIPアドレスで1つのサイト(FQDN)のみしか運営出来ない。
名前ベースのバーチャルホストと大きく異なる。

名前ベースのバーチャルホストと混合させる場合

名前ベースのバーチャルホストとIPベースのバーチャルホストを混合させる場合、 VirtualHost ディレクティブにポート番号も付加する。

<VirtualHost *:80>

</VirtualHost>

<VirtualHost IPアドレス:80>

</VirtualHost>

SSL を利用する場合も同様に 443 など、ポート番号を付加する。

IPベースでバーチャルホストを利用する場面としては(自分の場合)SSLサイトを作る際、ドメインが違うサイトでSSL証明書を使い分けなくてはならない為。通常の場合なら名前ベースのバーチャルホストで用が足りるはず。

ワイルドカード証明書では異なるドメインに対応出来ないし。ただ、ベリサインからマルチドメインなる証明書の販売が始まるとか始まったとか。









2010 8月17日

PGDGレポジトリを追加する

純正レポジトリに postgresql を上書きされない様に無効化しておく。
/etc/yum.repos.d/CentOS-Base.repo を編集のうえ、[base]と[update]のそれぞれのセクションに、
exclude=postgresql*
を追記する。

http://yum.pgsqlrpms.org/reporpms/repoview/letter_p.group.html
から対象OS&バージョンを選んでRPMをダウンロード

wget http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm
rpm -ivh pgdg-centos-8.4-2.noarch.rpm

/etc/yum.repos.d/pgdg-84-centos.repo が作成される。

# cat /etc/yum.repos.d/pgdg-84-centos.repo
[pgdg84]
name=PostgreSQL 8.4 $releasever - $basearch
baseurl=http://yum.pgsqlrpms.org/8.4/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg84-source]
name=PostgreSQL 8.4 $releasever - $basearch - Source
failovermethod=priority
baseurl=http://yum.pgsqlrpms.org/srpms/8.4/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

必要なpostgresqlのパッケージをインストール&アップデート。

# yum install postgresql postgresql-server postgresql-devel compat-postgresql-libs postgresql-libs postgresql-contrib

–> Running transaction check
–> Processing Dependency: libpq.so.4 for package: perl-DBD-Pg
–> Finished Dependency Resolution
Error: Missing Dependency: libpq.so.4 is needed by package perl-DBD-Pg

エラーが出てインストール出来ない。

http://blog.motoo.net/2009/03/13/172626
を見て、パッケージを削除しているので試す。

# yum remove perl-DBD-Pg

再度インストールを試すと、どうやら成功した。

データベースを初期化

# service postgresql initdb

/var/lib/pgsql/pgstartup.log を見てエラーが起きていないことを確認。
前バージョンの古いデータがあると失敗する。

データディレクトリは /var/lib/pgsql/data
設定ファイル /var/lib/pgsql/data/postgresql.conf

サービス開始

# service postgresql start

自動起動の設定

# chkconfig postgresql on

自動起動の確認(ランレベル2~5のonを確認)

# chkconfig --list postgresql
postgresql          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

参考:CentOS 5.3 に postgresql-8.4 をインストール | お試しlog4

認証方式
デフォルトではパスワードによる接続は出来ない。
postgresユーザー パスワードの設定
/var/lib/pgsql/data/postgresql.conf
/var/lib/pgsql/data/pg_hba.conf

参照:PostgreSQL Server のセットアップ ~ CentOS-4.5









2010 8月13日

DNSラウンドロビン?

DNSのAレコードに

A www 111.222.333.444
A www 555.666.777.888

と同じドメインに複数のIPアドレスを設定するとアクセスの度にローテーションしてIPアドレスを返してくれる。
これを用いて負荷分散などに利用出来る。

サーバダウン時にはどうなる?

古い文献によると、例えば上の例だと 111.222.333.444 のサーバがダウンしていると繋がらないとあるが、ブラウザ次第のようだ。

Macでの確認は

Safari ok
FireFox ok
Google Chrome ok
Opera ng

他のWebサイトでもOperaはNGだと書いてあった気がする。

要するにDNSに問い合わせて繋がらなければ次のIPアドレスを試すような仕様になっているみたいだ。
Opera以外は。

Operaさえ気にしなければ、ISPの回線障害に備えておくのにも使えそうな気がする。