為什麼我的A記錄指向我的apache伺服器

為什麼我的A記錄指向我的apache伺服器

我有兩個網頁伺服器 nginx 和 apache2。我有一個 mail.aboutryansam.com 的 A 記錄和一個 CNAME webmail.aboutryansam.com。我一直在嘗試設定託管在 mail.aboutryansam.com 上的 postfix 和 dovecot 郵件伺服器以及託管在 webmail.aboutryansam.com 上的 roundcube 郵件用戶端。我正在運行 Ubuntu 18。我有 /var/www/html 用於 roundcube。預設情況下,apache2 和 nginx 在同一連接埠上運行,因此我將 nginx 更改為使用連接埠 81。當我訪問 mail.aboutryansam.com 時,它仍然會帶我到 apache html 頁面,但我有conf檔案來處理 nginx 目錄

server {
  listen 81;
  server_name mail.aboutryansam.com;

  location {
    root /var/www/nginx/mail.aboutryansam.com
    index index.html index.htm;

    # proxy_pass http://localhost:3010;
    # proxy_set_header Host $host;
    # proxy_set_header X-Real-IP $remote_addr;
  }
}

我在運行網頁伺服器時遇到很多麻煩,而且我對伺服器管理很陌生,如果我不能很好地解釋它,我很抱歉。如果您可以幫助我並回答我,請“--verbose”,因為我說過我對這些東西很陌生。

答案1

DNS A 記錄指向 IP 位址,而不是服務。像 Apache/nginx 這樣的服務可以透過它運行的機器的 IP 位址和連接埠來存取。

當你進入http://mail.aboutryansam.com在您的瀏覽器中,它連接到預設的 HTTP 端口80,因此您可以連接到198.58.105.140:80Apache 正在偵聽的位置。server_name此時,您在 nginx 中定義的內容尚未被考慮,因為請求已進入 Apache。

如果您想要連線到偵聽連接埠 81 的服務,您必須明確指定:http://mail.aboutryansam.com:81

如果您不想:81在 URL 中出現此內容,您的選擇是:

  • 設定一個反向代理到伺服器上連接埠 80 的連接埠 81 -
  • 如果您有多個可用的機器/IP,請將 Apache 和 nginx 綁定在不同的機器/IP 上,這樣兩者都可以綁定連接埠 80,並相應地更改 DNS 記錄

相關內容