單個域名可能解析到多個伺服器
第一次來伺服器故障,我提前道歉,這個領域的東西並不是我的強項。非常感謝任何和所有建議。我完全迷失了,非常累!
我從我的前任那裡繼承了一個令人難以置信的複雜系統,我正試圖找到解決它的方法——或者我需要被告知這是不可能的。
- 我有一個舊站點
ServerA
(某種 Linux 發行版),其域SomeDomain.com
ServerB
(Ubuntu)上有一個新站點,打算SomeDomain.com
在未來提供服務(它正在替換舊站點)ServerA
還有一個網路應用程序,目前公司內其他部門正在使用(可訪問SomeDomain.com/web-app/
)**目標:**讓
SomeDomain.com
該域名的所有副檔名(子域、URL 等)在ServerB
. 但是,該 URLSomeDomain.com/web-app/
必須在ServerA
.**問題:**這
ServerA
是一個與託管公司共享的伺服器,具有非常有限的限制 - 我無法調整 DNS 設置(除了名稱伺服器 - 但不能設置 A 記錄或任何東西,我可以ServerB
按照我的意願完全訪問)。因此,網路應用程序必須SomeDomain.com/web-app/
從子域或任何東西中提供,而不是從子域提供。這些限制使得將網路應用程序從遷移Server A
到Server B
相當不可取,並且該網路應用程序將在不久的將來被替換,因此現在不值得努力。因此,最終我希望 1 域名
Server B
大部分時間解析為 的 IP 地址,但如果 URL 為SomeDomain.com/web-app/
,則應解析為Server A
的 IP。注意:從技術上講,域名不必解析為一個 IP 或另一個 - 但最終 URL 必須保持一致
我嘗試過的一些事情:
- 我已經查看了 mod_rewrite 和 .htaccess 以嘗試實現此效果,但它看起來對我不起作用 - 但我可能做錯了(在
Server B
,我只是檢查了請求 URI 是否是/web-app/
並嘗試過提供/web-app/
文件夾Server A
)- 我確實有能力修改兩台伺服器上的名稱伺服器
- 我無法在
Server A
該點上創建一個子域Server A
(我假設是因為託管公司的伺服器使用 URL 來確定服務的站點)。我認為這可能很好,因為我可以設置一個 A 記錄Server B
來指向網路應用程序Server A
- 但唉,Server A
需要SomeDomain.com
.如果我可以提供更多資訊,請告訴我。我需要推動正確的方向、想法或解決方案。
這裡有很多問題,這使得它不像它應該的那麼容易。
首先,我認為最好的處理方法是:
- 如果您無法更改伺服器 A 上的設置,請將其保留為
www.somedomain.com
。- 將伺服器 B 上的完全限定域名設置為
www2.somedomain.com
.- 添加使用 mod rewrite 或任何您喜歡將流量從 重定向
www2.somedomain.com/web-app
到www.somedomain.com/web-app
.現在了解詳情。
DNS 伺服器將 fqdn 解析為 IP 地址。他們無法幫助您處理低於此範圍的任何事情(例如路徑)。DNS 請求甚至不包含請求路徑。
在共享伺服器上,幾乎可以肯定它使用 HTTP 1.1 和基於名稱的虛擬主機。換句話說,盒子有一個 IP 地址,它查看請求中的 HOST 標頭以確定要服務的站點。因此,如果您執行基於 IP 地址的重定向,伺服器 A 只會收到一個 HTTP 請求
123.123.123.123/web-app/foo
,並且在該伺服器上擁有大量站點,它將不知道如何處理它。由於您的伺服器具有不同的內容(至少對於一個路徑),並且您不能使用基於 IP 地址的重定向,因此您必須使用不同的 fqdn 來區分它們。
由於舊站點可能已經設置
www.somedomain.com
為ServerName
並且聽起來您無法更改它,因此您唯一的選擇是創建一個新的伺服器名稱。