我有兩個網頁伺服器 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:80
Apache 正在偵聽的位置。server_name
此時,您在 nginx 中定義的內容尚未被考慮,因為請求已進入 Apache。
如果您想要連線到偵聽連接埠 81 的服務,您必須明確指定:http://mail.aboutryansam.com:81
如果您不想:81
在 URL 中出現此內容,您的選擇是:
- 設定一個反向代理到伺服器上連接埠 80 的連接埠 81 -
- 如果您有多個可用的機器/IP,請將 Apache 和 nginx 綁定在不同的機器/IP 上,這樣兩者都可以綁定連接埠 80,並相應地更改 DNS 記錄