仮想ドメインのLinuxの実装



著者:鄭タオ

Linuxオペレーティングシステムは非常に熱くなりましたので、私の友人の多くはLinuxについて知ってほしい、仮想ドメインの実現プロセス。次は、現在のRedHat上に人気の議論に基づいています。

1、DNSサーバーの設定

我々は、インターネットのネットワークは、TCP / IPプロトコルのIPアドレス、どのDNSサーバーを介して達成される互いのでなければならないの通信に基づいています知っている。だからための仮想ドメインが必要最初のDNSサーバーの仮想ドメインを受け入れるように、それは、指定したIPアドレスにマップさを確認します。我々は、ドメイン名のWebサーバーを区別するために依存するので、これは自然な管理されたWebサーバーのIPアドレスを指定する必要がありますので。

RedHat6.0のオペレーティングシステムは、BIND DNSサーバーにバンドルされて。これは、ドメインの設定ファイルは"通常の状況下での/ etc / named.confの"であるか、ドメインの設定は、/ var /"ディレクトリ"という名前のファイルです。

ケース1は、named.confの設定ファイル:

ゾーン"domain.com"(
タイプマスター;
ファイル"domain.com";
);
ゾーン"0.10.10.in - addr.arpa"(
タイプマスター;
ファイル"10.10.0";
);

"domain.com"ドメインの設定ファイルの例では、は"/ var / / domain.com"は、逆引きドメインの設定ファイルの名前は"/ var/named/10.10.0"です。 domain.comのファイルは、マッピングのDNSドメインのIPアドレスの責任があります。

ケース2は、domain.com設定ファイル:

。Hostmaster.dns.domain.com SOAのdns.domain.com @における(
1998111003;シリアル
3600;リフレッシュ
900は、再試行
1209600は、有効期限が切れる
43200; default_ttl

MXは@ 10 dns.domain.com。
のNS dns.domain.com @しましょう。
10.10.0.1 @における
WWWの10.10.0.1における

ドメイン名を高めるために想定さaaa.domain.com、www.domain.comを指すようにしたい場合、DNSサービスがエイリアスレコードには、のように記述することができます追加する必要があります:

のCNAME www.domain.comのAAA。

あなたはバーチャルドメインの大規模な数を設定するには、domain.com大きさにも非常に面倒ファイルが必要な場合。我々は、"*"であるか、domain.comに参加するファイルのシンボルを使用できます:

のCNAME *におけるwww.domain.com。

だから、それはすべての設定を行ってすべてのレコードの終わりをwww.domain.comに、domain.comに指定された入れていないかどうかをaaa.domain.comまたはbbb.domain.com。これは、既存のレコードには影響しません。構成されたDNSサーバーは、デーモンの名前再起動する必要:

[ルート@ドメイン/ルート]は、#の/ etc / / /再起動するというinit.dにrc.dに




[次へ]



Linuxオペレーティングシステムは非常に熱くなりましたので、私の友人の多くはLinuxについて知ってほしい、仮想ドメインの実現プロセス。次は、現在のRedHat上に人気の議論に基づいています。

2は、Apacheサーバの設定

Apacheサーバは、最も広く、非常にビジー状態のサイトを維持することができますインターネットWebサーバーを使用します。 RedHatの6.0バンドルのApache Webサーバー1.3。その構成は、/ etc / httpdを/ conf"ディレクトリ"にあるファイルは、httpd.confの、srm.confファイル、access.confのは、次の仮想ドメインの構成に関連する議論さ:

1、静的な構成

httpd.confファイルを設定を変更する手順:

(1)まずセットUseCanonicalNameのはオフです。これは、サーバホストと:ヘッダは環境変数のSERVER_NAMEを提供するためのServerName値のコンテンツを置き換えることを示します。

(2)して追加:

NameVirtualHostの場所ここで、xxx.xxx.xxx.xxxは、仮想サーバーのIPアドレスを設定することがxxx.xxx.xxx.xxxの。ここでは、もちろん、同じDNSサーバーの構成を持つ複数の仮想IPアドレスを設定することができます。 (注:この使用のIPアドレス、ドメイン名を使用することはできません。)

(3)次に、各仮想ドメイン名のレコードを追加:によって

VirtualHost xxx.xxx.xxx.xxx
.....
/ VirtualHostの

とNameVirtualHostのxxx.xxx.xxx.xxxは同じ構成のIPアドレスに。 2つのマークは、構成パラメータを追加することができます間です:

ServerNameは戻ってあなたと、aaa.domain.comなどの仮想ドメインを向上させる。
DocumentRootの場合は/ home / aaa"の"などの増加の背後にあるマシンのパスにマップする場合。
場合は、リモートURLへ戻るに追加する地図リダイレクトは、2つのパラメータは、最初の仮想ドメインの相対パスですが、2番目は、リモートサイトのURLです。
ドメインエイリアスを入社後ServerAliasにする場合は、*. aaa.domain.comなどのワイルドカードを使用できます。

次の2つの例:

例3、マシンの物理パスにマップさ:

VirtualHost xxx.xxx.xxx.xxx
DocumentRootの"/ホーム/テスト"
ServerNameはのtest.domain.com
VirtualHost の

例4は、リモートURLへのマッピング:

VirtualHost xxx.xxx.xxx.xxx
ServerNameはのtest1.doamin.com
リダイレクト/ http://test.domain1.com/welcome.htm
/ VirtualHostの

ログファイルの場所、タイムアウトの設定、バッファの設定などではなく、11この説明などのいくつかのパラメータは、Apacheサーバのオンラインヘルプファイルを参照できます。 httpd.confファイルは、バックグラウンドのデーモンhttpdが後にApacheを再起動するように構成ファイル

[ルート@ドメイン/ルート]は、#の/ etc / / /再起動httpdをinit.dにrc.dに

それぞれの追加の期間は、仮想ドメイン名に VirtualHost ... に増加する... / VirtualHostの コードの間の構成を、というだけではhttpdを有効にする新しい設定を再起動した後。

2、動的な構成

あなたが大きく、構成ファイルの長さを増加する仮想ドメインの大規模な数を設定する場合は、見つけることができます、ので、Apacheは遅くなる起動すると、より多くのメモリを取るではなく、簡単なオンラインアプリケーションを実装する。動的に構成を選択します。書面による事前のこの設定がなければ、しかし、いくつかの動的ルールの作成を自動的に生成するか、別の構成からいつでも情報をreadにします。

Apacheは、強力な拡張子を(モジュール)機能モジュールしています。機能モジュールがサーバー上で、拡大することができます実行すると、サーバーでYizhiよりも、この方法でサーバーを読み込み、それを使用する外部CGIプログラムSudu快を呼び出すよりもメモリ空間Tongshiを保存する必要があります。

今すぐ動的に、それがmod_rewriteをされる仮想ドメインを構成する強力なモジュールを使用します。これは、クライアントからリスニングを担当してURLに書き換えするURLアドレスと表現ルールのセットに基づいて送信されます。この概念は、URLエイリアスに似ていますが、それはさらに一歩になると、URLの出力が他のホストのURLアドレスにマップすることができます。 httpd.confファイルを設定を変更する手順:

(1)最初のセットのUseCanonicalNameのオフです。

(2)の使用は、オープンはRewriteEngineのエンジンを書き換えます。設定はRewriteMapの位置と属性、RewriteCondディレクティブとRewriteRuleでの構成ファイルに対応するルールを開発する。

ケース5は、httpd.confファイルの例の構成:

RewriteEngineに
RewriteMapの小文字のint:tolowerの使用
#定義個別の構成ファイルの
RewriteMap vhostのはdbm:/ www /のconfに/ vhostdbm
#使用して個別の設定は、マップする仮想ドメインをファイル
RewriteCondディレクティブ$(バーチャルホスト:%1)^(/.*)$
RewriteRule ^/(.*)$%の1/docs / $ 1

/ cgi - binにRewriteCondディレクティブの%(REQUEST_URIが)^ /
RewriteCondディレクティブ$(小文字:%(のSERVER_NAME))^(.+)$
RewriteCondディレクティブ$(バーチャルホスト:%1)^(/.*)$
RewriteRule ^/(.*)$%の1/cgi-bin / $ 1

ここvhostdbmファイル形式"を参照CGIプログラムの準備。"




[次へ]

Linuxオペレーティングシステムは非常に熱くなりましたので、私の友人の多くはLinuxについて知ってほしい、仮想ドメインの実現。次は、現在のRedHat上に人気の議論に基づいています。

第三に、CGIプログラミングのための

オンラインのバーチャルドメインを適用するには、あなたが)に適切なCGIのprogramを動的にvhostdbm上記のファイルは個別の構成ファイルを変更(書く必要がありますし、ユーザーアプリケーション、ログイン、passwordの変更、などを含むユーザmanagement(for)。これは独立した動作の設定ファイルについて説明し、他の方法については、CGIプログラムを書くに関連する情報を参照してくださいPerlの言語を使用することです。

vhostdbmはレコードデータには、dbmフォーマットを使用してファイルをテキスト形式のファイルと比較して高速検索をスピードアップすることができます、簡単に変更する。多くのUNIXシステムはdbm(データベース管理)標準ライブラリの求めている。ライブラリが鍵になる - 値のペアは、ディスクファイルに、単純なデータベース管理ツールを提供するために格納されて、簡単に変更、追加、またはデータの内容を削除します。

Perlのアクセスdbmの方法は:dbmデータベースと連想配列のようなプロセスを開いているファイルにリンクされます。配列を作成します新しい要素の直前dbmデータベースを変更します。要素を削除しますまた、dbmデータベースの値を削除した。することができますが使用される:

1、希望のデータベースはdbm配列をdBmにと関連付けられている:

関数dbmopen(%のarrayname、"dbmfilename"、$モード);

dbmfilenameは、新しいライブラリに存在しない場合。 %のArraynameパラメータは、Perlの連想配列(これらの値は削除されます場合、配列は、すでにその値を持っている)。連想配列と呼ばれるdbmfilename dbmデータベースに接続します。 $モードの引数が必要なライブラリをライブラリには、アクセス許可を数を制御するファイルを作成する場合、図8のシステムとして、よく使われて指定さ0644、メインマシンに新たに追加に加えて、ユーザーの読み取り専用のアクセス許可には、マシンの所有者にはフルアクセスしている。

2、近くにはdbmライブラリ:

dbmclose(%のarrayname);
%Arraynameのはdbmライブラリが既に配列名に関連付けられている。

ケース6、バーチャルホスト、オープンvhostdbmか、あるdbmライブラリを作成する:

関数dbmopen(%のバーチャルホスト、"vhostdbm"、0644);

例では、7日、新しいレコードまたは)既存のレコードを(パラメータバーチャルホスト、rhost名前でhtmlファイルからの振込み用紙に位置を変更:
$バーチャルホスト($フォーム(''バーチャルホスト''}}=$フォーム('' rhostの'');

例では、8日)既存のレコードを(パラメータバーチャルホストの名前でhtmlファイルから転送形式で設定を削除:
削除$バーチャルホスト($フォーム(''バーチャルホストの''}};

例9、近くvhostdbm:

dbmclose(%バーチャルホスト);

上記のパラメータの後に検証の伝送を想定されている注:は、レコードのない繰り返し、それ以外の場合は、混乱に記録されているつながるということである。