將網域名稱指向沒有 HTTPD 的伺服器

將網域名稱指向沒有 HTTPD 的伺服器

我在 Oracle Cloud 免費套餐上有一個虛擬機,並且擁有專用的 IPv4。我在這台伺服器上安裝了 MariaDB。我想將網域名稱(example.com)指向該機器,以便使用該網域存取MariaDB,例如在PHP程式碼中使用example.com:3306而不是xxx.xxx.xxx.xxx:3306?

我怎麼能在不安裝 nginx/apache httpd 的情況下做到這一點?

答案1

  1. 首先,您登入任何可以讓您控制 example.com 設定的地方。然後正確設定您的網域伺服器:在這裡您可以註冊並使用cloudflare 作為免費的簡單解決方案,並為您的網域使用他們的網域伺服器(例如,他們可能為您提供fay.ns.cloudflare.com 和ara .ns.cloudflare。如果您這樣做了,那麼是時候新增一些DNS 記錄了:登入您的cloudflare 帳戶,並在DNS 部分中建立一個A RECORD(ipv4 位址),將您的@(這表示沒有任何子網域的example .com)指向您的xxx。它應該有效。

  2. 如果您不想獲得自己的網域並執行所有這些名稱伺服器工作,則有一個本機解決方案:您可以告訴您的開發電腦 example.com 應解析為 xxx.xxx.xxx.xxx。在 Linux 中,您可以透過編輯 /etc/hosts 檔案並新增以下行來實現此目的:

xxx.xxx.xxx.xxx example.com

但請注意,第二種解決方案僅適用於具有此類配置的計算機,並且它不像前一種解決方案那樣是全局的。

無論哪種情況,您都不需要設定任何網頁伺服器。 DNS 與網路無關,無論是否有網頁伺服器,甚至該位址屬於真實伺服器或只是一個隨機數,都會發生這種情況。

在您的情況下,重要的是可以從外部存取該連接埠(正確配置防火牆),並且不僅在本機(127.0.0.1:3306)而且還在 xxx.xxx.xxx.xxx:3306 上偵聽該連接埠。通常,您可以透過偵聽 0.0.0.0:3306 並使用 0.0.0.0 作為通配符來偵聽所有這些內容。

答案2

運行或存取 MySQL 或 MariaDB 不需要 httpd。如果您不想在同一台電腦上運行網頁伺服器,請不要安裝它。

您需要將 MySQL 設定為偵聽外部介面(將其配置為偵聽 0.0.0.0),它預設為環回介面。不要忘記正確設定權限。

如有必要,請在防火牆/安全群組中開啟資料庫的 TCP 連接埠(在本例中為 3306),然後就完成了。理想情況下,只允許您的網頁伺服器連接到它。

答案3

如果將MySQL對外網開放,則需要非常注意安全性:

  • 確保對該伺服器的存取受到限制,例如它位於公共互聯網的防火牆後面
  • 如果必須位於公共網際網路上,請設定 TLS 憑證並在連線時使用 TLS 加密
  • 確保所有使用者帳戶都有正確的憑證

相關內容