我將嘗試重寫最初的問題,使其更有意義。
我面臨的問題是,我將我公司的網站託管在 Site Ground 上,但不幸的是,由於網站建立器的使用,他們無法轉移到該網域文檔根中的不同插件域下。我之所以想將其移動,是因為我終於註冊了與我的公司名稱相符的網域。目前該網站是透過臨時網域存取的,我從未打算將其保留為我公司的網域。
為了避免混淆,我公司的名稱是 Systopian Solutions。我的上市公司品牌主頁暫時(或我認為)在網域名稱“systopian.com”的文檔根下運行。我已經充分規劃,一旦我獲得了正確的公司網域名稱“systopiansolutions.com”,我就可以將該網域新增為網站地面中的另一個附加網域,然後將網站的實際內容從一個附加網域轉移到另一個附加域,兩者現場託管。
然而,在我最初認為網站可以轉移時,在我打開這裡的原始問題之前,即使轉移它,我也留下了一個小問題。
我還有 Vultr 託管的 e VPS 伺服器。該伺服器運行我公司所有的面向公眾的發票、計費和付款處理 Web 應用程式站點(發票忍者)以及幾個內部 Web 應用程式站點,這些站點允許我向我的客戶提供不同的服務,
附註:(雖然我知道,您永遠不應該在保存伺服器上運行公共站點和內部站點,但我已經實施了許多步驟以確保沒有人能夠四處窺探。對於 1. 我已為我的所有內部站點URL設定了別名,這樣他們就不會使用眾所周知的URL,如果他們知道這些網站在那裡的話。產品的功能,但是,透過使用/etc/phpmyadmin/apache2.conf,其格式與/etc/apache2/sites-available/ 的方式完全不同site-name.conf 檔案配置的語法完全不同,但由於我無法解釋的原因,如果我需要安裝新站點,而不是使用site-name.conf 這將導致Invoice Ninja 拒絕訪問任何DocumentRoot 路徑,我使用/etc/phpmyadmin/apache2.conf 並轉到phpMyAdmins 配置下的底部,然後使用標記建立一個新的標記部分,並放置適當的路徑、mods、路徑和所有其他配置新網站需要,儲存,然後重新啟動apache2。然而,我確實將安全性更進一步,因為我們在同一台伺服器上混合了公共和內部站點,透過添加.htpasswd 的使用並強制那些可能嘗試訪問某些內部站點的人,如果他們足夠努力的話,他們可能會發現,他們需要 .htpasswd 中配置的僅有 2 個使用者中的 1 個使用者的憑證。如果他們以某種方式滿足這些憑證,則每個 Web 應用程式網站本身都有存取這些網站所需的自己的使用者管理/登入憑證。雖然我並不幻想我所做的事情是不可滲透的,但我可以向您保證,需要一位非常堅定、具有多年經驗的駭客才能侵入內部網站。有足夠的層,並且選擇的密碼非常強,具有最小字元長度和#、特殊字元、上/下字元的正確組合)
我遇到的一個小問題是,我希望託管我公司的一些公共網站(例如發票忍者)的 VPS 伺服器使用新的公司網域 systopiansoltions.com。如果我公司的主頁已轉移到我的網站地面主機上的新插件網域,這意味著我將不得不使用不同的伺服器,這會以某種方式需要使用 systopiansoltions.com 網域。這就是我要問的,有沒有一種方法可以讓我的網站由 Site Ground 託管,其中 DNS A 記錄將具有不同的 IP 位址,以便 A 記錄將 systopiansoltions.com 網域指向 Site Ground IP 37.60.253.172,同時也以某種方式將我的VPS 伺服器網站的相同DNS 伺服器記錄指向我的VPS 網站的IP 位址,即207.246.87.29。
最初的問題或多或少是,在沒有任何類型的負載平衡器或路由器設定的情況下,是否有相同的 FQDN 以某種方式指向 2 個不同的 IP 位址。
我的一些想法可能會幫助我以最乾淨的方式做到這一點,以某種方式設定重定向,儘管我不確定這將如何運作。
這就是我的問題和問題的詳細解釋。
這個問題還有第二部分,我錯誤地問了不正確的訊息,所以我也會問這個...
由於 VPS 主機包含內部站點和公共客戶站點,我想知道是否有一種方法可以根據其功能為每個站點配置 2 個不同的網域...
範例:在 VPS 伺服器上,/etc/hosts 具有以下項目(我不包含「localhost」項目)。這就是直到今天它的配置方式。問題是,現在我註冊了正確的公司域名,我希望能夠將 systopian-web1.com 域名用於所有內部站點,同時以某種方式配置面向公共客戶的發票忍者站點以使用systopiansoltions.com 域,但是,我沒有第三個IP 可供使用,坦白說,我暫時缺乏任何類型的營運預算,所以我無力添加第三個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 但是,我最初的想法是為了指定這兩個中的任何一個,需要在 /etc/hosts.conf 中定義網域名稱。難道不是這樣嗎?我不確定這些網域將如何得到解析,因為我知道我不能有兩個 A 記錄,其中 2 個網域將指向同一個 IP 位址,即 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
只是提醒您,我之前問的仍然是一個懸而未決的問題,也就是說,由於我的上市公司的主頁目前託管在站點地面上,是否有任何方法可以在兩個完全不同的站點上使用相同的域名每個伺服器都有一個非常不同的IP? **我可能已經用另一種方式解決了這個問題,但問題仍然存在。
除此之外,我只有一個選擇,但我會在重寫我自己的回應時解釋,如果我可以修改它,如果不能,我將添加另一個回應。
我有一個友好的請求,特別是當您回覆某人時,您可以清楚地看到他是否對使用此網站非常綠色。而不是像你們中的一些人那樣做出回應,老實說,這讓我幾乎要離開該網站,因為我覺得這些回應對那些新來的人完全缺乏寬容,而且還不是全部。我對你們中的一些人似乎對如何發布問題等的期望相當無知,但相反,嘗試表示歡迎,要么給他們發送私人消息,要么回复他們的帖子並與他們分享後來與我分享的鏈接,在我明確表示綠色成員以及他們寫得不好的問題是絕對不能容忍的。這會給我很大的動力去花時間重寫這個問題。有時,人們過於專注於自己,以至於忘了一個小小的善意舉動能帶來多大的幫助。
如果不是其他成員之一花時間嘗試理解我的問題,並盡最大努力為我提供一種不同的方式來考慮我的問題,我不知道我是否會再次回來,這將是一種恥辱,因為像你們中的許多人一樣,我擁有20 年的技術支援、應用程式支援工程、系統管理、Web 服務以及國外系統整合和遷移工程架構師經驗。我非常確定,在某個時候,我本可以分享我多年的一些經驗,以幫助那些在許多領域不具備我的技能水平的人,而且我喜歡幫助人們。因此,雖然我並不是想打敗一匹馬,但我只是要求你們以一點寬容和接受的態度對待新成員,而不是放棄他們發表的第一篇帖子的聲譽,嘗試指出正確的方向方向(正如事後再次所做的那樣),以便他們能夠學習如何撰寫最有效的帖子,而不是讓他們感到不受歡迎,並與會員疏遠。希望我的問題和我剛才解釋的內容都能有所作為,並希望下一個人不會像我一樣感到被拒絕。
如果有人對我重寫的問題有任何疑問,請隨時提問。
乾杯,
約翰
答案1
您可能混淆了兩個概念:
- 這典範由 . 傳回的完全限定網域名稱
hostname --fqdn
。伺服器使用它來知道如何呼叫自己,例如在HELO
的命令中SMTP
。 - 您網站的完全合格網域。
為了systopiansolutions.com
在您的場所進行託管,您不需要更改伺服器的規範主機名,只需添加A
指向您的伺服器的 DNS 記錄並配置 Apache <VirtualHost>
.您不必更改其中任何一個/etc/hosts
,因為 Apache2 伺服器根據客戶端的Host
標頭選擇要提供服務的站點,而不是傳入介面的 IP 位址(實際上我必須猜測您想對文件做什麼/etc/hosts
,因為您僅在問題標題中提到它)。
MySQL 確實使用主機名稱來識別連線用戶,但您可能正在使用本機反正。
編輯: 經過您的澄清,這個問題的答案是:
最初的問題或多或少是,在沒有任何類型的負載平衡器或路由器設定的情況下,是否有相同的 FQDN 以某種方式指向 2 個不同的 IP 位址。
非常簡單:您可以A
為相同網域擁有任意數量的 DNS 記錄,前提是所有伺服器都具有相同的內容。如果不這樣做,您的用戶將隨機獲得一個網頁或另一個網頁。
關於該/etc/hosts
文件,25 年前它曾經包含與DNS
您可以從 NIC 下載所有互聯網主機的 IP 位址和網域相同的資訊。顯然,今天的情況已經行不通了。今天,您僅使用它來覆蓋DNS
(在 UNIX-es 上,/etc/hosts
在查詢 DNS 之前會進行諮詢):例如,通常(或歷史上)每個主機只有其短名稱,例如webserver1
in/etc/hostname
和一行:
127.0.1.1 webserver1.example.com webserver1
它會覆蓋A
的記錄webserver1.example.com
,以便主機與其自身的內部通訊使用環回設備。
答案2
雖然我此時無法找到合適的答案,事實上,由於 Site Ground 無法將我公司的公共主頁轉移到添加為 systopiansolutions.com 的 Addon 域,我真的不知道有關於將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 的條目。
我檢查了每個網站的 site-name.conf 以及 apache2.conf,並將所有 ServerName 和 ServerAlias 更改為使用 systopiansolutions.com。
然後,我重新啟動了主機,以確保我的所有變更都適當地提交到每個區域。
透過這樣做,我還能夠為所有要設定的網站取得 SSL 證書,並使用 systopiansolutions.com 為所有網站安裝 SSL 憑證。由於這是一個 VPS 伺服器,我必須使用 certbot-auto 手動建立證書,如果我了解 cli 程式的工作原理,它會根據 /etc/hosts 中的條目(而不是 DNS)驗證您的網域。
安裝 SSL 後,所有站點(公共站點和內部站點)都可以在新網域和 https 下正常運作。
然而,我注意到一些問題,雖然它們根本沒有傷害我,但希望有人可以幫助我解決一些問題,因為我討厭在一切都運行得如此完美的情況下搞亂任何事情。然而,據我了解,您的 /etc/hostname 中可能只有一個 FQDN,但我的有兩個。再說一次,沒有什麼是不起作用的,也沒有什麼是抱怨的。雖然我讀過,是的,您可以在此處列出多個 FQDN 條目,但我讀過 Linux 手冊頁,其中說,不,只允許一個。由於我不知道哪些子系統實際使用該文件作為其實體,所以我不確定應該在此處配置哪個網域...
root@systopian-web1:/etc# cat /etc/hostname systopian-web1 <==== 這是本地主機名稱。 systopian-web1.com <==== 這是伺服器的舊 FQDN。如果可能的話,我很樂意繼續使用它作為所有內部網站的 Web 應用程式網站的網域名稱。
現在,在我的 /etc/hosts 中,我們的情況略有不同,我交換了伺服器的網域。但是,除非有人知道如何配置兩個網域以在同一台主機上使用,否則我不知道還能做什麼。由於伺服器不會以任何方式綁定到我的本機網絡,因此我無法使用 localhost 條目來設定內部網站以將 LocalHost 與 systopian-web1.com 一起使用。所以這也行不通。
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
另一個問題是我想將 127.0.1.1 主機名稱保留為 systopian-web1,以便符合我的 Operations Center 伺服器命名約定。因此
/etc/hosts shows:
127.0.0.1 localhost
127.0.1.1 systopian-web1
因此,希望我能更好地解釋我所做的事情,以避免有 2 個 IP 位址指向單一網域的擔憂,因為我關於如何處理我新寫的問題貼文中提出的這些問題的第一個想法是不再是問題,而且由於我將在VPS 伺服器上建立我公司的主頁,該伺服器現在配置有systopiansolutions.com 域名,因此不再需要(除了設定網站的簡單性之外)使用Site Grounds 免費的拖放網站產生器),將我公司的主頁託管在Site Ground 上。