blogspotのようなサブドメインをセットアップする方法
質問
ユーザーが私のサイトにサインアップするときに、ユーザーのサブドメインを設定するにはどうすればよいですか。
必要なインフラストラクチャは何ですか? Linuxサーバーを使用しています。
解決
サブドメインごとに、DNS設定でCNAMEエントリ/ Aレコードを作成できます
CNAMEレコードは、 許可するドメイン管理設定 あなたのサブドメインを制御する ドメイン。
登録とともに自動化するには、登録時に各ユーザーに対して実行されるスクリプトを記述できます。
Apacheの段階的なプロセスについては、このリンクも参照できます。
(あなたがLinuxについて言及したので、私はそれがAPacheでなければならないと思います。そうでない場合は言及してください)
代替ソリューション
Alnitakが提供するワイルドカードソリューションを参照することもできます、同じスレッド内。彼の方が簡単な方法だと思います。 :)
他のヒント
既知のサブドメインごとに特定のDNS(CNAME
またはA
/ AAAA
)エントリを使用するか、*。example.comを受け入れるワイルドカードDNSエントリを使用できます:
$ORIGIN example.com
foo IN A 12.34.6.78
bar IN A 12.34.6.78
または
$ORIGIN example.com
* IN A 12.34.6.78
この後者の利点は、サービスの実行後にDNSまたはApacheの構成を変更する必要がないことです。欠点は、そのようなワイルドカード検索はすべて(定義により)同じIPアドレスを返す必要があることです。
Apacheの構成は、エンドユーザーによる制御とセキュリティの両方の要件に依存します。ユーザーがサーバー上でCGIスクリプトを実行する権限を持っている場合、安全に行われるように追加のセットアップが必要になることに注意してください。
コンテンツが静的か動的かによって、これは構成にも影響します:
-
mod_vhost_alias
を使用して個々の仮想ホストをマッピングするサーバー上の個々のディレクトリに移動します。 -
本当に必要な場合は、既知のサイトごとに個別の
<VirtualHost>
セクションを作成しますが、新しいユーザーがサインアップするたびにApacheを再起動する必要があります -
単一の
$SERVER_NAME
を使用し、出力をレンダリングするスクリプトで要求されたURL(<=>環境変数から)のホスト名部分を見て、どのユーザーのコンテンツを表示するかを判断します。
インフラストラクチャには、dnsサーバーへのアクセスが含まれ、ワイルドカードエントリを追加し、Apacheのルールを書き換えます。
これらの回答を試してください:
またはこのリンク:
Linuxサーバーを使用している場合、ApacheをWebサーバーとして使用していると想定しています。
サブドメインと仮想ホストに対して適切なDNSルーティングを設定する必要があります。
仮想ホストのセットアップはかなり簡単ですが、その場でプログラム的に簡単に実行できるかどうかはわかりません。
ほとんどの場合、Apache構成ファイルを編集して次を追加するのと同じくらい簡単です:
Port 80
ServerName www.mydomain.com
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/user-bob
ServerName bob.mydomain.com
...
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/user-sally
ServerName sally.mydomain.com
...
</VirtualHost>
VirtualHost Documention は、おそらくあなたにとって役に立つでしょう。
Apacheでは、単一サーバー上のサブドメインに基づいて、任意の数の「サイト」を指定できます。適切なサブドメイン情報と適切なDNSワイルドカードを含む新しい「サイト定義」ファイルを作成すると、必要な処理が行われます。
つまり、プロセスは次のようになります:
- *。mysite.comが適切なサーバーにリダイレクトされるようにワイルドカードを設定します。
- 新しいユーザーがサインアップしたら、適切なApacheサイト定義ファイルを作成します。おそらく、正しいサブドメイン情報を入れて保存するベーステンプレートがあります。
- Apacheの構成を再度読み取ります。
- 利益。
重要これは、構成ファイルがディレクトリに含まれるDebianスタイルのApache構成に基づいており、メイン構成はそのディレクトリ内のすべての構成ファイルを読み取ります。サブドメインを追加/削除すると、単一のファイルを編集するのではなく、ファイルを追加/削除することになるため、プロセスは非常に簡単になります。そのため、プロセスははるかに自動化されます。