我对 DNS 和服务器托管领域完全陌生,不太确定我需要什么。
我想获取一个域名,并将其转发到我自己的服务器,这样用户在 URL 栏中就能看到 example.com,并且 example.com/foo/bar 可以正常工作。根据子域名的不同,它应该执行不同的操作(Web 服务器上的另一个基本目录、ftp 等)。此外,我的电子邮件应该能够发送到该服务器并由该服务器接收。
让我恼火的是,在 A 记录中我只能列出 IP 地址而不能列出端口。那么我必须在自己的服务器上设置名称服务器吗?还是我可以通过 Web 服务器上的虚拟主机来实现这一点?
我将非常感激任何帮助或教程链接。
我知道 DNS 如何工作,了解一些基本的 apache 内容等等……所以不需要解释这些。
谢谢
答案1
您不需要运行自己的 DNS 服务器,除非您想使用它。大多数域名注册商允许通过其 Web 界面直接控制您域名的 DNS 记录,等等。
至于托管多个子域名,使用 apache 的VirtualHost
指令非常容易。你只需创建一个虚拟主机,其服务器名称为subdomain.example.com
,并将DocumentRoot
该子域名的设置为文件系统上的任何位置
Apache 中基于名称的虚拟主机示例:
<VirtualHost *:80>
DocumentRoot /var/www/domainx/htdocs/
ServerName subdomain.example.com
ServerAlias *.subdomain.example.com
...
</virtualHost>
答案2
它有助于记住OSI模型:
IP Address - Layer 3 - Network layer - Identifies the host
TCP Ports - Layer 4 - Transport Layer - Identifies the process
至少目前,DNS 仅将人类方便的名称映射到特定主机,即 IP 地址。TCP 端口应该由众所周知的端口处理。
答案3
您设置一个 A 记录来指向您的服务器,不需要端口。端口 80 是默认的 Web 服务器端口,因此如果您输入http://yourdomain.com/
它将把请求发送到yourdomain.com
端口 80。