基于名称的虚拟主机配置

基于名称的 Apache 虚拟主机在 Apache 网站上描述如下:

使用基于名称的虚拟主机,服务器依赖客户端将主机名报告为 HTTP 标头的一部分。使用此技术,许多不同的主机可以共享相同的 IP 地址。

因此,可以通过此方法在一台服务器上托管多个网站。在 ubuntu 上,配置文件位于/ etc / apache2 / sites-available 中。在该目录中,你将找到 000-default.conf。这是默认配置,所有请求都将发送到此配置文件,直到其他请求被设置为止。

要设置虚拟主机,此处将使用 example.com ,但你应将其替换为 domain.com 。复制默认文件:

 cp 000-default.conf example.com.conf

配置文件可以具有以下指令:

 <VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias www.example.com

        DocumentRoot /var/www/example.com/html
        
        ErrorLog /var/log/apache/logs/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache/logs/access.log combined    
</VirtualHost>
  • 第一行表示应匹配端口 80(默认 http 端口)上的所有请求。你也可以使用 IP 地址而不是*,即服务器的 IP。
  • ServerAdmin 是用于显示 http 错误消息的网站管理员的联系方式。
  • ServerName 是网站的域名。
  • ServerAlias 是网站的第二名,通常是 www.domain.com
  • DocumentRoot 是我们浏览网站时加载的根文件夹。
  • ErrorLog 是指向错误的文件
  • LogLevel。是要发送到日志的错误级别
  • CustomLog 是访问信息的文件

使用你的网站域名和网站文件的相应目录编辑替换 example.com 的文件。

保存文件并使用以下 Apache 命令启用站点:

sudo a2ensite example.com.conf

重新加载 apache

sudo service apache2 reload

还有一些必须检查的事情:

  • 确保你的域的 DNS 设置为正确的 IP(这可能需要一段时间才能传播)
  • 确保你的端口 80 在防火墙上打开
  • 确保在服务器文件上正确设置了文件权限 - 所有权应为 www-data:www-data 和目录权限应为 750,文件权限应为 640。

你的虚拟主机应该正常运行! 你可以为同一服务器上的其他网站重复此操作,使用不同的配置文件(使用相同的命名约定)和/ var / www 下的不同目录。