![在 VPS 上路由不同的域名](https://linux22.com/image/596998/%E5%9C%A8%20VPS%20%E4%B8%8A%E8%B7%AF%E7%94%B1%E4%B8%8D%E5%90%8C%E7%9A%84%E5%9F%9F%E5%90%8D.png)
我们刚刚从共享主机转到 VPS 服务器。我们有几个指向 DNS 的域名,但它们都指向服务器的根目录。我现在想要的是一个设置,每个域名都有自己的映射,这样我们就可以在 VPS 服务器上运行不同的网站。
喜欢:
www.example.com 指向:/var/www/example.com www.imapwnu.com 指向:/var/www/imapwnu.com
首先,这可能吗?其次,我在运行 Ubuntu 的 LAMP 服务器上拥有 root SSH 访问权限和 Webmin。Webmin 没有 Bind9(我不知道是否需要它,一些论坛向我推荐了名为 bind 的东西)。
提前致谢
答案1
你需要熟悉的技术是基于名称的虚拟主机。设置起来相对容易,一个基本的例子如下
Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com
</VirtualHost>
<VirtualHost *:80>
ServerName www.imapwnu.com
ServerAlias imapwnu.com
DocumentRoot /var/www/imapwnu.com
</VirtualHost>
这将接受对 www.example.com 的请求,example.com 将提供来自 /var/www/exampl.com 的内容,并接受对 www.imapwnu.com 的请求,imapwnu.com 将提供来自 /var/www/imapwnu.com 的内容。
关于 bind9,如果您已经将您域名的所有 DNS 与不同的注册商合作,那么现在这就是您将它们留在最安全的地方。
答案2
正如您所提到的,您希望将 www.example.com 指向 /var/www/example.com 并且对于您拥有的每个域名都这样做。
答案是可以的。但您必须配置您的 Web 服务器 (Apache) 并添加虚拟主机。
阅读有关虚拟主机的更多信息。除非您想要设置一个功能齐全的 DNS 服务器场,否则您不需要在 VPS 上运行 Bind。我认为您现在可以避免这种情况,因为您可以使用域名注册商的 DNS 服务器来管理您的域。
您所要做的就是登录您的域名注册商帐户(例如 godaddy),然后转到 DNS 管理器并添加 A 记录。
A记录告诉我们特定域名指向哪里。它的值是IP地址。
因此,如果您有 example.com 并且想要在您的 VPS 上运行此程序,那么您必须修改 example.com 的 A 记录并输入您的 VPS 的 IP 地址。然后转到您的服务器并配置 Web 服务器以监听 example.com。
您可以通过这种方式指向所有域名。但不要忘记阅读虚拟主机。