设置在 Apache 上运行的虚拟主机的正确方法是什么?



我在ubuntu 16.04上配置了apache,并按照以下说明创建了一个虚拟主机:

<Directory /var/www/html/example.com/public_html>
Require all granted
</Directory>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example.com/public_html
ErrorLog /var/www/html/example.com/logs/error.log
CustomLog /var/www/html/example.com/logs/access.log combined
</VirtualHost>

当我尝试在浏览器上打开页面 www.example.com 时,我看到以下消息:

This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.

我应该使用另一个名称而不是"示例"来解决问题吗?

好吗?例如"myname.com">

为了清楚起见,我只需要这个进行本地测试

>www.example.com 是其他人拥有的实际网站,在DNS中注册并包含一些内容。当您在浏览器中打开地址时,您的计算机首先询问DNS服务器(可能是ISP设置的一个(。然后DNS响应,www.example.com 运行在93.184.216.34 - 这可能不是您的计算机。这是消息的来源。

那么,服务器名称和服务器别名的含义是什么?它实际上是在您的机器上运行的Web服务器的指令,以了解哪些数据包适用于给定的虚拟主机。它不会影响您的浏览器翻译它们的方式。

为了进行本地测试(服务器和浏览器都在同一个操作系统上(,您需要做的就是为"本地主机"创建虚拟主机。这是当前正在使用的计算机的保留地址。简单地说:

ServerName localhost
ServerAlias localhost

进入您的虚拟主机,您将能够通过在浏览器中输入"本地主机"来访问网络服务器。

如果您在本地需要多个主机,您可以通过编辑主机文件 https://en.wikipedia.org/wiki/Hosts_(文件( 来覆盖 dns - 例如,在窗口中通过添加主机记录,例如:

127.0.0.1 app.local
127.0.0.1 db.local

然后创建两个不同的虚拟主机,一个别名为 app.local,另一个使用 db.local。然后,操作系统将按主机文件将来自浏览器的请求正确路由到您的计算机。然后,您的网络服务器将根据标题将您的请求分类到适当的虚拟主机。

您可能需要查看有关 dns 和互联网协议如何工作的一些一般信息:

  • https://en.wikipedia.org/wiki/Internet_protocol_suite
  • https://en.wikipedia.org/wiki/Internet_Protocol
  • https://en.wikipedia.org/wiki/Domain_Name_System

相关内容

最新更新