????????????????????¨????°???¨??§????????°???????¨??????¬???????????°?????±??????????????§??????
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>
以上、ご教授願います。宜しくお願い申し上げます。
|
■ コンテンツ関連情報
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 アクセスも通常のアクセスも全て出来なくなりました。 内容を確認しましたが、間違った設定はしていない様だったので、何が原因か分かりませんでした。
|
■ その他