![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
やりたいことは、
自社サーバにある複数のウェブサイトのテスト用にそれぞれサブドメインを設定して外部からチェックしたいのですが。。。。
サブドメイン( 例:test1.xxxxxxxx.com )を自前でいくつでも自由に設定したいのです。
/////////// 以下は決定事項です。
・PCにCentOS(Apache、Bind、その他諸々)をインストール
・グローバルIPを1つ取得済み
・逆引き権限は持ってません
・独自ドメインを1つ登録済み
・ダイナミックDNSを使うというのは考えていません。
・プロバイダのサブドメイン設定サービスみたいなものはありません
///////////
どなたか、ご教示くださいませ。m(__)m
No.1ベストアンサー
- 回答日時:
グローバルIPを1つで複数のウェブサイトということはApacheは名前ベースのバーチャルホスト(named virtual)で動かしているということですか?
どこにDNSの管理を任せるのか(それとも自分でDNSを管理するのか)にもよりますが、ワイルドカードDNSでそのグローバルIPアドレスを登録しておいて、後はApacheのnamed virtualに振り分けを任せればいいのでは?
774danger様
ご回答ありがとうございます!
> グローバルIPを1つで複数のウェブサイトということは
> Apacheは名前ベースのバーチャルホスト(named virtual)で
> 動かしているということですか?
!!その通りです。
> どこにDNSの管理を任せるのか
自前でBINDを設定してDSNサーバを立てたいと思ってます。
> ワイルドカードDNSでそのグローバルIPアドレスを登録しておいて、
> 後はApacheのnamed virtualに振り分けを任せればいいのでは?
ワイルドカードDNSとグローバルIPを結びつけるのはどこで
設定できるのでしょうか?
BINDを設定するのでしょうか?
httpd.confの設定は以下のように想定してます。
# バーチャルホストの設定
<VirtualHost test1.[登録ドメイン].jp:80>
# 省略
</VirtalHost>
No.4
- 回答日時:
> ワイルドカードDNSとグローバルIPを結びつけるのはどこで
> 設定できるのでしょうか?
> BINDを設定するのでしょうか?
はい
test1, test2.......が数個だったら1つ1つ登録しても手間にはなりませんが、数が多く今後も増えるようなら、ワイルドカードで設定しておけばbindの管理の手間が減らせます
↓に例があります
http://kawa.at.webry.info/200811/article_5.html
この回答への補足
自分自身に回答。
> 以上を踏まえると、グローバルIP、BIND、Apache、
> といった要素をそろえれば、
> 誰でもドメイン名を自前で解決するDNSサーバを立ててることができて、
> 外部からのアクセスを自由に制御可能であるということでしょうか?
たぶんYES
BINDの設定で、プライマリDNSを自前のDNSに設定して
セカンダリDNSをなにか外部のNameServerに設定できれば?
> なにが知りたいかというと、
> 現状の上位ドメインからの逆引き権限委譲は必要ないのでしょうか?
上位ドメインじゃなくて上位DNSの間違い。
今は特に必要ないかも。
とりあえず以上です。
ご回答くださった皆様ありがとうざいました!
774danger様
ご回答ありがとうございます!
>> BINDを設定するのでしょうか?
> はい
> test1, test2.......が数個だったら1つ1つ登録しても
> 手間にはなりませんが、
> 数が多く今後も増えるようなら、
> ワイルドカードで設定しておけばbindの管理の手間が減らせます
教えていただいたURLを参考にBINDを設定してみます!
以上を踏まえると、グローバルIP、BIND、Apache、
といった要素をそろえれば、誰でもドメイン名を自前で解決するDNSサーバを立ててることができて、
外部からのアクセスを自由に制御可能であるということでしょうか?
なにが知りたいかというと、
上位ドメインからの逆引き権限委譲は必要ないのでしょうか?
No.3
- 回答日時:
python のスクリプトを投稿したらスペースが消えてインデントが無くなってしまいました。
これをコピペしても走りません。失敗。
まあドメイン十個くらいは手書きでいいでしょう。
httpd.conf 内で
Include etc/apache22/extra/httpd-vhosts.conf
この行を有効にして、さらに
Include etc/apache22/extra/httpd-default.conf
を有効にして
HostnameLookups On
にしておけば log に host-nameが出ます。これ忘れ易い。
あと apache はバージョンによって 設定ファイルが違いますね。
これも気をつけないと。
DNS設定は IP一つなんだから * でどんなサブドメインもひっかかるようにするとシリアルナンバー更新忘れでドツボにはまることも少ないと思う。
No.2
- 回答日時:
virtual-host の設定は apache22だと extraディレクトリ の下の
http-vhosts.conf で行うと良いと思います。
これを直接書くのは ドメインが大量の場合めんどうなので、
私の場合以下のスクリプトを使ってます。
vhost.txt にドメインを書き並べておいて
以下を実行
#! /usr/local/bin/python
import os,socket,sys
def gethn():
fqdn = socket.gethostname()
dotp = fqdn.find('.')
hn = fqdn
if 0<=dotp:
hn = fqdn[:dotp]
return hn
def ropen(fn):
try:
rfp = open(fn,"r")
return rfp
except:
print "error at ropen", fn
sys.exit(1)
def wopen(fn):
try:
wfp = open(fn,"w")
return wfp
except:
print "error at wopen", fn
sys.exit(1)
def vsection(host):
wf.write("<VirtualHost *:80>\n")
wf.write(" ServerAdmin webmaster@nobody\n")
wf.write(" DocumentRoot /www/%s\n" % host)
wf.write(" ServerName %s\n" % host)
wf.write(" ErrorLog /www/log/%s.error_log\n" % host)
# wf.write(" CustomLog /www/log/%s.access_log common\n" % host)
wf.write(" CustomLog /www/log/%s.access_log combined\n" % host)
wf.write("</VirtualHost>\n")
wf.write("\n")
def dsection(host):
wf.write("<Directory /www/%s" % host)
wf.write(" AllowOverride All\n")
wf.write(" Options +ExecCGI -Indexes\n")
wf.write(" Order deny,allow\n")
wf.write(" Allow from all\n")
wf.write("</Directory>\n")
wf.write("\n")
ifn= 'vhosts.txt'
ofn = 'httpd-vhosts.conf'
if os.access(ofn,os.F_OK):
ofback = ofn + '.back'
os.rename(ofn,ofback)
rf = ropen(ifn)
wf = wopen(ofn)
wf.write("# Virtual Hosts\n")
wf.write("NameVirtualHost *:80\n")
vsection('trap')
vsection('trap')
vsection(gethn())
for ii in rf:
host = ii.rstrip()
if host[0] == '#':
continue
vsection(host)
sys.exit(0)
eroermine様
ご回答ありがとうございます!
スクリプトによるVirtualHostの管理方法を教えていただき
ありがとうございます!
スクリプトはインデントしたらちゃんと動きました!
Pythonはあまり使ったことがありませんが、ネットワーク管理ツール作成に使えるようですので、これから使っていきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- Web・クリエイティブ 1.現在webデザイン系のサイト開発・運営してるのですが、サイト内ジャンルに「人間関係」を入れるor 1 2022/11/12 11:11
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- ドメイン・サーバー・クラウドサービス サクラサーバーでのHPのUPについて 1 2023/06/10 11:21
- Gmail SPFレコードとDNSサーバーについて、gmailを設定できるかどうか 2 2023/06/10 23:55
- その他(IT・Webサービス) Wordpressわかる方教えてください。 2 2023/01/26 15:20
- その他(ブログ) Brogger独自ドメインから独自ドメインへ変更する 1 2022/09/22 13:21
- WordPress(ワードプレス) WordPressの編集画面がいつもと違うのですがこれは何でしょう? 1 2023/03/29 10:26
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- 固定IP Win11 アダプター設定変更にイーサネットが表示されない 1 2022/12/03 18:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
write downとfill outの違いを...
-
奇数・偶数の区別をプログラミング
-
micropython コードについて
-
複数のランダムクイズの表示が...
-
シリアル通信プログラミングで...
-
プログラムの勉強をしているの...
-
C言語について。
-
忘れないうちに書き留めておき...
-
HTMLの値の渡し方について質問...
-
遷移先のURLにパラメータを表示...
-
フォームのtextareaにnl2brを使...
-
ACCESSのレポートの表示...
-
<br>が文字列で出力されてしま...
-
<TEXTAREA> 1行目の改行・・・。
-
ブログパーツのjsファイルの書き方
-
引数について
-
aspxでIFみたいなことがしたい
-
ブラウザの見え方について質問...
-
インラインフレーム内を送信する
-
テキストエリアの改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
奇数・偶数の区別をプログラミング
-
write downとfill outの違いを...
-
最大値と最小値の間を循環する変数
-
シリアル通信プログラミングで...
-
micropython コードについて
-
数字の右側にゼロを付加する
-
fortranのwrite文コメント有無...
-
Fortaranの質問
-
Fortran 出力形式
-
OpenSSLのSSL_write()をタイム...
-
C言語について。
-
複数のランダムクイズの表示が...
-
最大値、最小値の求め方
-
私は、もっと早くお祝いメッセ...
-
HTMLの値の渡し方について質問...
-
ACCESSのレポートの表示...
-
フォームのtextareaにnl2brを使...
-
SELECTボックスの内容を動的に...
-
遷移先のURLにパラメータを表示...
-
aspxでIFみたいなことがしたい
おすすめ情報