为什么我的 A 记录指向我的 Apache 服务器

为什么我的 A 记录指向我的 Apache 服务器

我有两个 Web 服务器 nginx 和 apache2。我有 mail.aboutryansam.com 的 A 记录和 webmail.aboutryansam.com 的 CNAME。我一直在尝试设置托管在 mail.aboutryansam.com 上的 postfix 和 dovecot 邮件服务器以及托管在 webmail.aboutryansam.com 上的 roundcube 邮件客户端。我正在运行 Ubuntu 18。我有两个用于邮件服务器的目录 /var/www/nginx/mail.aboutryansam.com/。我有用于 roundcube 的 /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 服务器时遇到了很多麻烦,而且我是服务器管理的新手,如果我不能很好地解释,请见谅。如果您能帮助我并回答,请尽量详细,因为我说了我是这方面的新手。

答案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 记录

相关内容