最初の質問をより意味が通るように書き直してみたいと思います。
私が直面していた問題は、会社のウェブサイトを Site Ground でホストしているのですが、残念ながら使用しているサイト ビルダーのせいで、そのドメインのドキュメント ルートにある別のアドオン ドメインに転送できないことです。私がそれを移動したかったのは、会社名と一致するドメイン名をようやく登録したからです。現在、そのウェブサイトは一時的なドメイン名からアクセスされていますが、会社のドメイン名として保持するつもりはありませんでした。
混乱を避けるために、私の会社名は Systopian Solutions です。私の公開会社ブランドのホームページは、ドメイン名「systopian.com」のドキュメント ルートの下で一時的に (少なくとも私はそう思っていました) 実行されていました。私は、正式な会社ドメイン名「systopiansolutions.com」を取得したら、そのドメインを Site Ground の別のアドオン ドメインとして追加し、サイトの実際のコンテンツを 1 つのアドオン ドメインから別のアドオン ドメインに転送し、どちらも Site Grounds Hosting 上で実行できるように計画していました。
しかし、当初はサイトを移管できると考えており、ここにあった元の質問を開く前は、たとえ移管できたとしても、ちょっとした問題が残っていました。
私はVultrがホストするVPSサーバーも持っています。このサーバーは、私の会社の公開請求書、課金、支払い処理Webアプリサイト(Invoice Ninja)のすべてと、クライアントにさまざまなサービスを提供できるいくつかの社内Webアプリサイトを実行しています。
補足: (パブリック サイトと内部サイトを保存サーバー上で実行してはいけないことは承知していますが、誰も覗き見できないようにするためにいくつかの手順を実装しました。1. すべての内部サイトの URL にエイリアスを設定して、それらのサイトが存在することを知っていても、よく知られている URL が使用されることがないようにしました。2. Invoice Ninja には非常に堅牢なセキュリティ実装があり、Invoice Ninja がその製品の機能のために許可しない限り、誰も fqdn/dir を選択できません。ただし、/etc/phpmyadmin/apache2.conf を使用することで、/etc/apache2/sites-available/site-name.conf ファイルの構成方法とはまったく異なる形式になります。構文はまったく異なりますが、理由は説明できませんが、新しいサイトをインストールする必要がある場合は、site-name.conf を使用するのではなく、Invoice Ninja が DocumentRoot のどのディレクトリへのアクセスも拒否するようにします。パスについては、/etc/phpmyadmin/apache2.conf を使用し、phpMyAdmins Config の一番下まで移動して、マーカーを使用して新しいタグ セクションを作成し、適切なパス、mod、パス、および新しいサイトに必要なその他のすべての構成を配置して保存し、apache2 を再起動します。ただし、パブリック サイトと内部サイトを同じサーバーに混在させているため、.htpasswd の使用を追加して、内部サイトにアクセスしようとする可能性のあるユーザーに、.htpasswd で構成されている 2 人のユーザーのうち 1 人の資格情報の入力を強制することで、セキュリティをさらに一歩進めています。何らかの方法でそれらの資格情報を満たした場合、Web アプリ サイト自体には、それらのサイトにアクセスするために必要な独自のユーザー管理/ログイン資格情報がそれぞれあります。私が行ったことが侵入不可能であるとは思いませんが、内部サイトにハッキングするには、何年もの経験を持つ非常に意志の強いハッカー 1 人が必要であることは間違いありません。十分な層があり、選択されたパスワードは、最小の文字長と、#、特殊文字、大文字/小文字の正しい組み合わせで非常に強力です。
私が抱えていたちょっとした問題は、請求書忍者など、会社の公開サイトの一部をホストしている VPS サーバーで、新しい会社のドメイン systopiansoltions.com を使用する必要があったことです。会社のホームページが Site Ground ホストの新しいアドオン ドメインに転送された場合、別のサーバーが必要になり、何らかの方法で systopiansoltions.com ドメインを使用する必要があります。そこで私が尋ねていたのは、Site Ground でサイトをホストし、DNS A レコードに別の IP アドレスを設定して、systopiansoltions.com ドメインを Site Ground IP の 37.60.253.172 にポイントし、同時に VPS サーバー サイトの同じ DNS サーバー A レコードを VPS サイトの IP アドレス 207.246.87.29 にポイントする方法があるかどうかです。
最初の質問は、ロード バランサーやルーターの設定を一切せずに、同じ FQDN を何らかの方法で 2 つの異なる IP アドレスにポイントする方法があるかどうかというものでした。
これを可能な限りクリーンな方法で行うのに役立つかもしれないと私が考えたのは、何らかの方法でリダイレクトを設定することですが、それがどのように機能するかはわかりません。
以上が私の問題と質問の詳細な説明です。
この質問には2番目の部分がありましたが、私は誤って間違った情報で質問してしまったので、それについても質問します...
VPS ホストには内部サイトとパブリック顧客サイトの両方が含まれているため、機能に基づいて各サイトに 2 つの異なるドメイン名を構成する方法があるかどうか疑問に思っていました...
例: VPS サーバーでは、/etc/hosts に次のエントリがありました (「localhost」エントリは含めていません)。これが今日までの構成です。問題は、適切な会社のドメイン名を登録したので、systopian-web1.com ドメイン名をすべての内部サイトで使用できるようにしたいのですが、パブリック顧客向け請求書 Ninja サイトが systopiansoltions.com ドメインを使用するように何とか構成したいのですが、使用できる 3 番目の IP がなく、率直に言って、しばらくの間、いかなる種類の運用予算も不足しているため、この問題を完全に解消する 3 番目の IP を追加する余裕がありません。
207.246.87.29 systopian-web1.com <--プライマリIP
45.76.165.28 unms.systopian-web1.com <-- 専用の IP アドレスが必要なため、このアプリのインストール用に特別に追加されたセカンダリ IP。
そこで質問なのですが、1 つの IP を 2 つの異なるドメイン名で使用する方法はありますか? あるいは、これを実現する他の方法をご存知の方はいらっしゃいますか?
apache2/sites-available/invoice-ninja.conf で、次のエントリを変更できることはわかっています: ServerName systopiansolutions.com ServerAlias www.systopiansolutions.com ただし、最初に考えたのは、これら 2 つのいずれかを指定するには、ドメイン名を /etc/hosts で定義する必要があるということでした。そうではないのでしょうか? 2 つのドメイン名が同じ IP アドレスを指す 2 つの A レコードを持つことはできないことはわかっているので、これらのドメインが他の方法で解決されるかどうかはわかりません。つまり、stopiansolutions.com を 207.246.87.29 に解決し、同じ VPS サーバー systopian-web1.com 上の別のドメイン名が同じ IP 207.246.87.29 を指すようにすることはできません。/etc/hosts を更新して次の内容を含めることができない限りは、この方法は使えません。
207.246.87.29 systopian-web1.com <-- このドメインは、私がクライアントに機能とサービスを提供するために使用する内部ウェブサイト用に設定されていますが、一般の人はこれらのサイトにアクセスできません。
207.246.87.29 stopiansolutions.com <-- このドメインは、一般顧客向けサイトであるため、Invoice Ninja 用に設定されます。したがって、すべての一般顧客向けサイトでこのドメインを使用するようにします。
45.76.165.28 unms.systopian-web1.com
念のためお伝えしますが、私が以前尋ねたことは未解決の問題です。つまり、私の公開会社のホームページは現在 Site Ground でホストされているので、それぞれ IP が大きく異なる 2 つのまったく異なるサーバーで同じドメイン名を使用する方法はあるでしょうか。** 別の方法で解決できたかもしれませんが、疑問は残っています。
それができない場合、もう 1 つの選択肢しかありませんが、それを修正できる場合は自分の返信を書き直す際に説明します。修正できない場合は、別の返信を追加します。
一つだけ、皆さんがこのサイトの利用に非常に不慣れであることがはっきりとわかる人に返信するときに、お願いがあります。皆さんの中には、このサイトを去ろうかと思うほど不慣れな人がいたのですが、皆さんのような返信はやめてください。返信には、このサイトのやり方にまだ慣れていない初心者に対する寛容さがまったく感じられず、皆さんの中には、質問の投稿方法などに関してどのような期待を抱いている人がいるのか、私はまったく知らなかったのです。代わりに、歓迎の気持ちを示し、プライベート メッセージを送信するか、投稿に返信して、グリーン メンバーと、彼らのよく書かれていない質問がまったく許容されないことが明らかになった後に、後で私に共有されたリンクを共有してください。そうすれば、時間をかけて質問を書き直す動機ができたはずです。人は、自分のことばかり考えすぎて、ちょっとした親切がどれほど役立つかを忘れてしまうことがあります。
他のメンバーの 1 人が時間をかけて私の質問を理解しようとし、私の問題を検討する別の方法を提供しようと最善を尽くしてくれなかったら、私は二度とここに戻ってこなかったでしょう。それは残念なことでした。なぜなら、皆さんの多くと同じように、私も 20 年にわたって技術サポート、アプリケーション サポート エンジニアリング、システム管理、Web サービス、および外国システム統合および移行エンジニアリング アーキテクトとして働いてきたからです。いつか、長年の経験の一部を共有して、多くの分野で私ほどのスキル レベルを持っていない人たちを支援できたと確信しています。私は人を助けるのが大好きです。ですから、私は無駄なことを言っているわけではありませんが、新しいメンバーには少しだけ許しと受け入れの気持ちで接し、最初の投稿の評判を落とすのではなく、正しい方向を指し示して (かなり後になってからもう一度やったように)、歓迎されていないと感じさせたり、メンバーから疎外されたと感じさせたりするのではなく、最も効果的な投稿の書き方を学べるようにしてほしいと思います。願わくば、私の質問と今説明したことが効果を発揮し、次の人が私と同じように拒絶されたと感じないようにしてほしいと思います。
私が書き直した質問に関してご質問がございましたら、お気軽にお尋ねください。
乾杯、
ジョン
答え1
おそらく、次の 2 つの概念を混同していると思われます。
- の正統なによって返される完全修飾ドメイン名。これは、たとえばのコマンド
hostname --fqdn
で、サーバーが自分自身を呼び出す方法を知るために使用されます。HELO
SMTP
- ウェブサイトの完全修飾ドメイン名。
systopiansolutions.com
オンプレミスでホストするには、サーバーの正規ホスト名を変更する必要はなく、A
サーバーを指す DNS レコードを追加して Apache を構成するだけです。Apache2サーバーは、着信インターフェイスの IP アドレスではなく、クライアントのヘッダーに基づいてサービスを提供するサイトを選択するため、どちらも<VirtualHost>
変更する必要はありません(質問のタイトルにのみ記載されているため、ファイルで何をしようとしているのか推測する必要があります)。/etc/hosts
Host
/etc/hosts
MySQLは接続ユーザーを識別するためにホスト名を使用しますが、おそらくローカルホストともかく。
編集: ご説明いただいた後、この質問に対する答えは次のようになります。
最初の質問は、ロード バランサーやルーターの設定を一切せずに、同じ FQDN を何らかの方法で 2 つの異なる IP アドレスにポイントする方法があるかどうかというものでした。
非常に簡単です。すべてのサーバーのコンテンツが同じであれば、同じドメインに対して任意の数のA
DNS レコードを持つことができます。同じコンテンツがない場合、ユーザーはランダムにいずれかの Web ページにアクセスすることになります。
ファイルについてですが/etc/hosts
、25 年前は と同じ情報が含まれていてDNS
、NIC からすべてのインターネット ホストの IP アドレスとドメイン名をダウンロードできました。もちろん、今日ではこのようには機能しません。今日では、上書きするためだけに使用しますDNS
(UNIX ではDNS を照会する前に参照されます)。たとえば、通常 (または歴史的に)、すべてのホストには、のような短い名前と次の行だけ/etc/hosts
があります。webserver1
/etc/hostname
127.0.1.1 webserver1.example.com webserver1
これA
は のレコードを上書きしwebserver1.example.com
、ホストとそれ自身との内部通信にループバック デバイスが使用されるようにします。
答え2
現時点では適切な回答が見つからず、Site Ground が私の会社のパブリック ホームページを systopiansolutions.com として追加されたアドオン ドメインに転送できないように見えるため、1 つのドメイン名を 2 つの異なる IP アドレスに解決することに関する質問は特にありません。そのため、それが可能かどうか、あるいは可能であれば、そのレベルの専門知識を持つ人が同じ問題に直面した場合にどのように対処するかについて、まだ興味があります。
しかし、実際のサイトを転送する方法がないため、VPS サーバーに別の新しいサイトを作成することにしました。そのサーバーにはすでに Invoice Ninja (パブリック顧客向けサイト) があるため、複数の IP を持つ複数の場所にドメイン名を設定することはやめて、VPS サーバーの構成全体を変更し、/etc/hosts 内の systopian-web1.com への参照を削除し、そのドメイン名のすべてのエントリを systopiansolutions.com に置き換えます。こうすることで、パブリックかどうかに関係なく、すべてのサイトが会社の適切なドメイン名を指すようになります。
そこで私は実際にその計画を実行し、Site Ground によって提供されている DNS を更新しただけでなく、
また、/etc/hosts を変更し、systopian-web1.com のエントリをコメント アウトし、systopiansolutions.com のエントリを追加しました。
私は自分の各 Web サイトの site-name.conf と apache2.conf を調べ、すべての ServerName と ServerAlias を systopiansolutions.com を使用するように変更しました。
次に、ホストを再起動して、すべての変更が各領域に適切にコミットされていることを確認しました。
これも実行することで、すべてのサイトの SSL 証明書をプロビジョニングし、systopiansolutions.com を使用してすべてのサイトにインストールすることができました。これは VPS サーバーなので、certbot-auto を使用して手動で証明書を作成する必要がありました。この CLI プログラムの動作を理解していれば、DNS ではなく /etc/hosts のエントリに基づいてドメイン名を検証することがわかります。
SSL がインストールされると、パブリックと内部のすべてのサイトが新しいドメインと https を使用して正常に動作するようになります。
しかし、私はいくつかの問題に気付きました。それらは私にとってまったく害はありませんが、すべてが完璧に機能しているときに何かに手を加えるのは嫌なので、誰かが助けてくれることを願っています。しかし、私の理解では、/etc/hostname には FQDN が 1 つしか含まれていないかもしれませんが、私の場合は 2 つあります。繰り返しますが、何も機能しておらず、不満はありません。また、ここに複数の FQDN エントリをリストできることはわかりましたが、Linux のマニュアル ページを読むと、いいえ、1 つしか許可されていないと書かれています。実際にどのサブシステムがこのファイルのエントリを使用しているかわからないため、ここでどのドメイン名を設定すればよいのか正確にはわかりません...
root@systopian-web1:/etc# cat /etc/hostname systopian-web1 <==== これはローカルホスト名です。 systopian-web1.com <==== これはサーバーの古い FQDN です。可能であれば、これを内部サイトであるすべての Web アプリケーション サイトのドメイン名として引き続き使用したいと思います。
さて、私の /etc/hosts では、少し状況が異なります。サーバーのドメイン名を入れ替えました。ただし、両方のドメイン名をこの同じホストで使用するように構成する方法を知っている人がいない限り、他に何をすればよいかわかりません。サーバーはローカル ネットワークにまったく接続されていないため、localhost エントリを使用して、systopian-web1.com で LocalHost を使用するように内部サイトを構成することはできません。したがって、これも機能しません。
root@systopian-web1:/etc# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 systopian-web1
//207.246.87.29 systopian-web1.com
207.246.87.29 systopiansolutions.com
45.76.165.28 unms.systopian-web1.com
//The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
もう1つの問題は、オペレーションセンターサーバーの命名規則に従うために、127.0.1.1のホスト名をsystopian-web1に保持したいということです。そのため、
/etc/hosts shows:
127.0.0.1 localhost
127.0.1.1 systopian-web1
それで、2 つの IP アドレスが単一のドメイン名を指すことに関する懸念を回避するために私が行ったことをうまく説明できたと思います。なぜなら、これらの問題に対処する方法について私が最初に考えたことの 1 つが、私が新しく書いた質問投稿で取り上げたもので、もはや問題にはならず、現在 systopiansolutions.com ドメイン名で構成されている VPS サーバー上に会社のホームページを作成する作業を行うので、会社のホームページを Site Ground でホストする必要がなくなったからです (Site Ground の無料のドラッグ アンド ドロップ サイト ビルダーを使用してサイトをセットアップするシンプルさ以外)。