• ベストアンサー

サブドメインを自前でいくつでも自由に設定して外部からアクセスできるようにするには?

やりたいことは、 自社サーバにある複数のウェブサイトのテスト用にそれぞれサブドメインを設定して外部からチェックしたいのですが。。。。 サブドメイン( 例:test1.xxxxxxxx.com )を自前でいくつでも自由に設定したいのです。 /////////// 以下は決定事項です。 ・PCにCentOS(Apache、Bind、その他諸々)をインストール ・グローバルIPを1つ取得済み ・逆引き権限は持ってません ・独自ドメインを1つ登録済み ・ダイナミックDNSを使うというのは考えていません。 ・プロバイダのサブドメイン設定サービスみたいなものはありません /////////// どなたか、ご教示くださいませ。m(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.1

グローバルIPを1つで複数のウェブサイトということはApacheは名前ベースのバーチャルホスト(named virtual)で動かしているということですか? どこにDNSの管理を任せるのか(それとも自分でDNSを管理するのか)にもよりますが、ワイルドカードDNSでそのグローバルIPアドレスを登録しておいて、後はApacheのnamed virtualに振り分けを任せればいいのでは?

mokokomi
質問者

お礼

774danger様 ご回答ありがとうございます! > グローバルIPを1つで複数のウェブサイトということは > Apacheは名前ベースのバーチャルホスト(named virtual)で > 動かしているということですか? !!その通りです。 > どこにDNSの管理を任せるのか 自前でBINDを設定してDSNサーバを立てたいと思ってます。 > ワイルドカードDNSでそのグローバルIPアドレスを登録しておいて、 > 後はApacheのnamed virtualに振り分けを任せればいいのでは? ワイルドカードDNSとグローバルIPを結びつけるのはどこで 設定できるのでしょうか? BINDを設定するのでしょうか? httpd.confの設定は以下のように想定してます。 # バーチャルホストの設定 <VirtualHost test1.[登録ドメイン].jp:80> # 省略 </VirtalHost>

その他の回答 (3)

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.4

> ワイルドカードDNSとグローバルIPを結びつけるのはどこで > 設定できるのでしょうか? > BINDを設定するのでしょうか? はい test1, test2.......が数個だったら1つ1つ登録しても手間にはなりませんが、数が多く今後も増えるようなら、ワイルドカードで設定しておけばbindの管理の手間が減らせます ↓に例があります http://kawa.at.webry.info/200811/article_5.html

mokokomi
質問者

お礼

774danger様 ご回答ありがとうございます! >> BINDを設定するのでしょうか? > はい > test1, test2.......が数個だったら1つ1つ登録しても > 手間にはなりませんが、 > 数が多く今後も増えるようなら、 > ワイルドカードで設定しておけばbindの管理の手間が減らせます 教えていただいたURLを参考にBINDを設定してみます! 以上を踏まえると、グローバルIP、BIND、Apache、 といった要素をそろえれば、誰でもドメイン名を自前で解決するDNSサーバを立ててることができて、 外部からのアクセスを自由に制御可能であるということでしょうか? なにが知りたいかというと、 上位ドメインからの逆引き権限委譲は必要ないのでしょうか?

mokokomi
質問者

補足

自分自身に回答。 > 以上を踏まえると、グローバルIP、BIND、Apache、 > といった要素をそろえれば、 > 誰でもドメイン名を自前で解決するDNSサーバを立ててることができて、 > 外部からのアクセスを自由に制御可能であるということでしょうか? たぶんYES BINDの設定で、プライマリDNSを自前のDNSに設定して セカンダリDNSをなにか外部のNameServerに設定できれば? > なにが知りたいかというと、 > 現状の上位ドメインからの逆引き権限委譲は必要ないのでしょうか? 上位ドメインじゃなくて上位DNSの間違い。 今は特に必要ないかも。 とりあえず以上です。 ご回答くださった皆様ありがとうざいました!

  • eroermine
  • ベストアンサー率18% (83/444)
回答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一つなんだから * でどんなサブドメインもひっかかるようにするとシリアルナンバー更新忘れでドツボにはまることも少ないと思う。

mokokomi
質問者

お礼

eroermine様 追記をありがとうございます! apache設定の勘所を教えてくださり感謝します。

  • eroermine
  • ベストアンサー率18% (83/444)
回答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)

mokokomi
質問者

お礼

eroermine様 ご回答ありがとうございます! スクリプトによるVirtualHostの管理方法を教えていただき ありがとうございます! スクリプトはインデントしたらちゃんと動きました! Pythonはあまり使ったことがありませんが、ネットワーク管理ツール作成に使えるようですので、これから使っていきたいと思います。

関連するQ&A

  • サブドメインの委任について

    BIND9.3.1を使用してDNSサーバを 構築する実習を行っています。 自班が管理するゾーンは group5.intra-test.ac.jpです。 サブドメインsub.group5.intra-test.ac.jpを として他班に委任します。 また自ゾーンのホストに設定されるIPアドレスは 192.168.105.xxx(xxxは1から254まで)とし、 サブドメインのホストに設定されるIPアドレスは 192.168.205.xxx(xxxは1から254まで)としています。 この場合のnamed.confと正引き・逆引き ゾーンファイルはどのように設定すれば よいのでしょうか? どなたかご指導願います。

  • サブドメインの設定で

    Red Hat Linux 7.3/Apache1.3.23で、サブドメインの設定を行ったのですが、 http://www.sub.******.com/というURLにアクセスするとうまくアクセス出来るのですが、 http://sub.******.com/ とwwwを省略したURLにアクセスするとサーバに繋がりません。 namedもApacheも再起動しました。www無しだとpingが通っていません。以前設定したサブドメインと設定に差は無いので、設定自体は間違えて無さそうなのですが…。どなたか原因分かる方おられますでしょうか?

  • BIND9.1.2でサブドメインの設定がうまくいきません。

    現在運用しているドメインの下に新たにサブドメインを作りたいのですが、うまくいきません。hogehoge.ne.jpの下にtaro.hogehoge.ne.jpというドメインをつくりたいのですが、親サーバと子サーバでの設定法を教えていただけませんか。サブドメインへの委譲する場合の設定の方法をお願いします。ちなみに、親サーバはLASER5-6.0、bind-9.1.2で、子サーバーはLASER5-7.2、bind-8.2.5です。親サーバのbindは子サーバーの登録以外は正常に動作していますが、子サーバーのbindは何も設定されていません。

  • サブドメイン設定、合ってますか?

    VALUE DOMAIN で有料サーバーをレンタルして、 「xxx.xrea.jp」 「yyy.xrea jp」 「zzz.xrea.jp」 の3つのサブドメインを作成(取得)しました。(独自ドメインはなし) XREA.COM 側のドメインウェブ設定で、それぞれのサブドメインを順に、 「Main」 「Sub1」 「Sub2」 に入力し「ドメイン設定」ボタンを押しました。 public_html下に、「yyy.xrea jp」 「zzz.xrea.jp」という ディレクトリが自動的に作成されました。 これで1日近く待ちますが、相変わらず各ページを開くと、 ドメインウェブの設定が見つかりません 考えられる原因 * ドメインウェブの設定がまだ行われていない。 * ドメインウェブの設定がまだ反映されていない。(反映には数~24時間かかることがある) * ドメインウェブ・DNSの設定が誤っている。 という表示のままです。 ドメインウェブ設定はやって、24時間待って、DNS設定はサブドメイン なのでやらなくていいと思いますが、何か間違ってるのでしょうか? とにかくこの設定自体が間違ってるかどうかもわからず困ってます。 どうかご回答をよろしくお願いします。

  • Vine Linux で 自宅WEBサーバーの外部公開をしたいので、Apacheも設定し、ドメインも取得しているのですが、、、

    プライベートIPアドレスでのテストでは、もちろん自宅クライアントPCから閲覧でき、外部からは閲覧できないのわかりますが、このたび自宅ウェブサーバーの外部公開のために、Apacheも設定して、ダイナミックDNS関連のウェブサイトにてドメインを取得して、自宅非固定IPアドレスとドメイン名との関連付けもして、FTP設定とそのサーバへのアップロードも終了しています。ダイナミックDNSサイトを利用しているのでBIND設定は全くしなくてもいいのですよね?ダイナミックDNSウェブサイトを利用しているので、自宅でのDNSサーバ設定はしなくてもいいのですよね?ダイナミックDNSによる関連付け設定は問題ないと思いますが、おそらくApache設定のところが不完全な気がしますが、どうでしょうか?よろしくお願いします。 < 補足 > レゾルバ設定ファイル は全く触っていません。自宅DNSサーバを建てなくてもレゾルバ設定はするのですか? ダイナミックDNSウェブサイト利用していれば自宅DNSサーバ設定は一切必要ないとウェブで見ました。ポートマッピング設定は完了し、Ping DDNS名での反応はあります。でもレゾルバ設定ファイルの編集が必要ならば操作方法サイトを教えて下さい。あとはレゾルバ設定の部分とApacheのServernameとDocumentRoot設定の所ですか?

  • サブドメイン設定方法

    御世話になります。 サブドメイン追加設定についてお尋ねします。 現在、example.co.jpドメインで運用しています。 そして、serach.exmaple.co.jpとtest.co.jpのサブドメイン追加設定を依頼されました。 親ドメインのexample.co.jpのDNSサーバで管理することになります。 ゾーンファイルに記述する方法として、 @ IN SOA dns.example.jp. root.example.jp. 略 pc1  IN A 192.168.10.1 pc2 IN A 192.168.10.11 pc3 IN A 192.168.10.12 ==============追加========= serach IN A 192.168.10.50 test.co.jp   IN A 192.168.20.50 こんな具合でよろしいんでしょうか。 お恥ずかしい質問かと思いますが、ご指摘・ご教授頂きますとうれしいです。 よろしくお願いします。

  • DNSの逆引き設定について

    さくらVPSのCentOSでサーバーを構築していますが DNSの設定で躓いています。 ドメインもさくらで取得しているため DNSはマスター・スレーブともにさくらのものを利用する予定です。 ドメインを入力してウェブサイトが問題なく表示されるため 正引きは成功しているのだと思います。 つぎに逆引きの設定をしようとしているのですが、 いくつかわからない点があります。 まず逆引きを行うには、たとえ外部のDNSを利用しているとしても サーバーでBINDを動かしそこで設定する必要があるのでしょうか? その場合BINDでは逆引きのゾーン設定のみし、正引きは設定する必要はいのでしょうか。 またさくらVPSにはコントロールパネルから逆引きが設定できる機能がありますが、 そこで設定すれば、BINDの導入やそれを使ったZONEの設定などは不要なのでしょうか? ちなみに今回逆引きを設定したいのは送信メールがスパムと判断されるのを防ぐのが目的です。 MXレコードの設定が必要になってくると思うのですが、 そのあたりを踏まえてご教示いただけたら助かります。 よろしくお願いいたします。

  • サブドメインが安定せず困っています。

    最近サブドメインを追加して設定したのですが、つながったり切れたりで困っています。 BINDサーバーで設定を追加して、繋がる時は正常日繋がるのですが、繋がらない時は404が返ってきます。 apacheの方にもエラーはでておらず、それ以外(もともと設定していたもの)は正常に動きます。 皆目見当もつかないので、何が不安定にしているか検討つきそうな方がいたらご指導下さい。

  • サブドメインの委譲

    サブドメインの委譲というのは、hoge.co.jpのサブドメインsub.hoge.co.jpを別なDNSに管理させるということですよね? この場合、sub.hoge.co.jpについてはsub.hoge.co.jpを管理しているDNSがマスターでhoge.co.jpを管理しているDNSがスレーブになるということを意味しているのでしょうか? また、サブドメイン委譲の際は両方のDNSに特別な設定が必要なのでしょうか?

  • サブドメインの設定について教えてください。

    初心者ですがよろしくお願いします。 (基本的な勘違いかもしれません。) 現在 abc-def.com というドメインがあったとします。 今回サブドメインを使用したいと思います。 (xxx.abc-def.com) NETWORK SOLUTIONSのドメイン管理にサブドメインの設定というものがあったのですが、 abc-[任意の文字入力欄]-def.com というふうに表示されます。 教えていただきたいのは、 1..comのサブドメインの設定には NETWORK SOLUTIONSでの登録が必要なのか?(実は、DNSサーバの設定のみで良いのか?) 2.登録が必要であれば、サブドメインのつく位置は、頭なのか、途中なのか?(「-」が有るから?) です。 よろしくお願いいたします。