Apache-2.2

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

  • September 9, 2018

我有兩個網路伺服器 nginx 和 apache2。我有 mail.aboutryansam.com 的 A 記錄和 CNAME webmail.aboutryansam.com。我一直在嘗試設置一個託管在 mail.aboutryansam.com 上的 postfix 和 dovecot 郵件伺服器,以及一個託管在 webmail.aboutryansam.com 上的圓形郵件客戶端。我正在執行 Ubuntu 18。我有兩個目錄 /var/www/nginx/mail.aboutryansam.com/ 用於郵件伺服器。我有 /var/www/html 用於圓形立方體。預設情況下,apache2 和 nginx 在同一埠上執行,因此我將 nginx 更改為使用埠 81。我在 apache 目錄中有預設的 html 頁面,並在我的 nginx 目錄中創建了一個自定義頁面。當我訪問 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;
 }
}

我在執行 Web 伺服器時遇到了很多麻煩,而且我是伺服器管理的新手,如果我不能很好地解釋它,我很抱歉。如果您可以幫助我並回答,請保持“–verbose”,因為我說我是這個東西的新手。

DNS A 記錄指向 IP 地址,而不是服務。可以通過執行它的機器的 IP 地址和埠來訪問像 Apache/nginx 這樣的服務。

當您在瀏覽器中輸入*http://mail.aboutryansam.com*80時,它連接到預設 HTTP 埠,因此您連接到198.58.105.140:80Apache 正在偵聽的位置。此時server_name不考慮你在nginx中定義的,因為請求已經進入了Apache。

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

如果您不希望:81在 URL 中使用它,您的選擇是:

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

引用自:https://serverfault.com/questions/930155