はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 Subdomain の設定方法
日時: 2007/01/18 19:19
名前: Apache

こんにちは

Apache と Subdomain の設定方法について質問させて下さい。
最終的に私がアチーブしたい設定は

http(s)://example.com ← /example/htdocs へアクセスさせたい
http(s)://www.example.com ← /example/htdocs へアクセスさせたい
http(s)://mail.example.com ← アクセス不可にさせたい
http(s)://hostname.example.com ← アクセス不可にさせたい
http(s)://xxx.example.com ← /xxx/htdocs へアクセスさせたい

という設定なのですが、現在は DNS に登録されている CNAME 
(hostname, mail 等) で全て Web サーバーにアクセス出来てしまいます。
限定されたサブドメインのみでアクセスが可能にするにはどうすれば
宜しいのでしょうか?

また、NameVirtualHost *:80 で順番に ServerName で指定した
ディレクトリーに振られる設定は出来たのですが、ポート番号の
指定により、今度は SSL でのアクセスがこれでは出来なくなって
しまいました。これはそれぞれの VirtualHost 毎に SSL の設定を
して行かなくてはいけないのでしょうか? それとももっと効率の良い
設定があるのでしょうか?

NameVirtualHost *:80

#
# XXX Virtual Host
#
<VirtualHost *:80>
  ServerName xxx.example.com
  ServerAdmin admin@ example.com
  DocumentRoot /xxx/htdocs

  <Directory "/xxx/htdocs">
    Directory の設定がここに、、、
  </Directory>

</VirtualHost>

#
# Default Virtual Host
#
<VirtualHost *:80>
  ServerName www. example.com
  ServerAdmin admin@ example.com
  DocumentRoot /example/htdocs
</VirtualHost>

IP ベースでも試してみましたが、同じ DocumentRoot に振られてしまい、
下記例でいくと、/example/htdocs に全て行ってしまいました。

NameVirtualHost 123.456.789.101

#
# XXX Virtual Host
#
<VirtualHost 123.456.789.101>
  ServerName xxx.example.com
  ServerAdmin admin@ example.com
  DocumentRoot /xxx/htdocs

  <Directory "/xxx/htdocs">
    Directory の設定がここに、、、
  </Directory>

</VirtualHost>

#
# Default Virtual Host
#
<VirtualHost 123.456.789.101>
  ServerName www. example.com
  ServerAdmin admin@ example.com
  DocumentRoot /example/htdocs
</VirtualHost>

以上、ご教授願います。宜しくお願い申し上げます。
メンテ

Page:  [1]

■ コンテンツ関連情報

 Re: Subdomain の設定方法 ( No.1 )
日時: 2007/01/19 11:25
名前: 管理者

> http(s)://example.com ← /example/htdocs へアクセスさせたい
> http(s)://www.example.com ← /example/htdocs へアクセスさせたい
> http(s)://mail.example.com ← アクセス不可にさせたい
> http(s)://hostname.example.com ← アクセス不可にさせたい
> http(s)://xxx.example.com ← /xxx/htdocs へアクセスさせたい

> という設定なのですが、現在は DNS に登録されている CNAME 
> (hostname, mail 等) で全て Web サーバーにアクセス出来てしまいます。
> 限定されたサブドメインのみでアクセスが可能にするにはどうすれば
> 宜しいのでしょうか?


「example.com」をリアルドメイン(メインドメイン)として書かせて頂きます。

まず、バーチャル設定を行います。(分かりやすくする為、外部ファイルとしています。)
# vi /etc/httpd/conf.d/virtualhost.conf
# -------------------- [http]アクセス --------------------
NameVirtualHost *:80
<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www/html/example.com      ← リアルドメインのドキュメントルート
 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteLog "logs/rewrite_log"
  RewriteLogLevel 0
  RewriteCond %{HTTP_HOST} mail.example.com$ [OR] ← アクセス不可のURL
  RewriteCond %{HTTP_HOST} hostname.example.com$ ← 同上(複数の場合、上記の様に末尾へ[OR]を記述)
  RewriteRule ^.*$ [F]
 </IfModule>
</VirtualHost>
<VirtualHost *:80>
 ServerName www.example.com
 DocumentRoot /var/www/html/www.example.com    ← バーチャル(www)のドキュメントルート
</VirtualHost>
<VirtualHost *:80>
 ServerName xxx.example.com
 DocumentRoot /var/www/html/xxx.example.com    ← バーチャル(xxx)のドキュメントルート
</VirtualHost>
# -------------------- [https]アクセス --------------------
NameVirtualHost *:443
<VirtualHost *:443>
 ServerName example.com
 DocumentRoot /var/www/html/example.com      ← リアルドメインのドキュメントルート
</VirtualHost>
<VirtualHost *:443>
 ServerName www.example.com
 DocumentRoot /var/www/html/www.example.com    ← バーチャル(www)のドキュメントルート
</VirtualHost>
<VirtualHost *:443>
 ServerName xxx.example.com
 DocumentRoot /var/www/html/xxx.example.com    ← バーチャル(xxx)のドキュメントルート
</VirtualHost>


ssl設定ファイルに以下を追加します。
# vi /etc/httpd/conf.d/ssl.conf
#  Per-Server Logging:
#  The home of a custom SSL log file. Use this when you want a
#  compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
     "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

# -------------------- ここから --------------------
 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteLog "logs/rewrite_log"
  RewriteLogLevel 0
  RewriteCond %{HTTP_HOST} mail.example.com$ [OR] ← アクセス不可のURL
  RewriteCond %{HTTP_HOST} hostname.example.com$ ← 同上(複数の場合、上記の様に末尾へ[OR]を記述)
  RewriteRule ^.*$ [F]
 </IfModule>
# -------------------- ここまで --------------------

</VirtualHost>


説明すると物凄く長くなりそうなので、まずは設定してください。
上記の設定で、当方環境で動作確認済みです。
不明点がありましたら、ポイントを絞って再度ご質問願います。
メンテ
 Re: Subdomain の設定方法 ( No.2 )
日時: 2007/02/17 22:21
名前: Apache

大変お世話になっております。
ようやく試す時間が出来て試してみましたが、

1) mail.example.com 及び hostname.example.com について

rewrite rule 以外の方法で回避する手段はありますでしょうか?

2) 443 ポートについて

試してみましたが、SSL による subdomain アクセスも通常のアクセスも全て出来なくなりました。
内容を確認しましたが、間違った設定はしていない様だったので、何が原因か分かりませんでした。
メンテ

Page:  [1]

題名
名前  ("初心者"を含む名前は使用できません)
E-Mail
URL
パスワード 記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント
画像添付 (対応画像:JPEG/GIF/PNG [Max 500KB])

   クッキー保存

■ その他


Copyright(©)2004-2018 First home server construction. All Right Reserved.