1

好的。我正在尝试在 ubuntu 中设置我的配置文件。

当我查看sites-available文件夹时,我看到

  • 000-default.conf
  • ssl-default.conf

我有一个站点 testsite.com,我需要为 https 配置虚拟主机

  1. 我可以添加一个新的虚拟主机部分ssl-default.conf吗?我应该将整个文件复制到 testsite.conf 并在那里进行编辑吗?
  2. 我应该在哪里设置端口 80? 000-default.conf? 如果我复制文件,是否需要000在文件名中添加 以便首先读取它?
  3. 我在哪里可以将以前在默认文件中的信息放在哪里,即(Allow Overrides等)
4

1 回答 1

0

通常,VirtualHost 的最佳位置是站点可用文件夹中的一个新文件。prfixed 带有100-.

所以像sites-available/100-443-myproject.example.com.

这样,当您使用ae2ensiteanda2dissite命令时,您将拥有默认和myproject.example.comin 网站列表来启用或禁用。

000是默认虚拟主机的保留编号,因为 apache 按字母顺序从启用站点的目录中读取文件,并且默认虚拟主机应该是第一个(默认虚拟主机捕获所有格式错误的主机 HTTP 标头,当没有VirtualHost ServerName匹配时)。

如果您的 VirtualHost 用于端口 80,您将不得不使用<VirtualHost *:80>配置指令(或者<VirtualHost <my IP>:80>,取决于NameVirtualHost设置)。如果您的 VirtualHost 用于 SSL 端口,并且是您的情况,您将必须使用<VirtualHost *:443>,并且您必须确保a2ensitea2dissiteVirtualhost 是唯一定义的启用 SSL 的 VirtualHost(因此不应启用 ssl-default)。

使用端口 80,该ServerName指令足以让 apache 决定应该采用哪个 VirtualHost。对于端口 443 和 SSL,这还不够,因为 SSL 协商是在 Host 标头/ServerName可以匹配之前进行的。因此,多个 SSL Vh 必须使用不同的端口或使用此处描述的新 SNI 系统,例如

现在,AllowOverride您不需要将其放在主配置中(但您可以使用/etc/apache2/conf.d目录来存储此类所有虚拟主机共享的配置内容)。您的 VirtualHost 可以包含足够的指令,例如:

<Virtualhost (....)
    ServerName (...)
    (...)
    <Directory />
      # Forbid .htaccess for all the filesystem directory tree
      AllowOverride None
    </Directory>

    <Directory /path/to/somewhere>
      # I am mad and I like slow apache server
      # So I want to allow .htaccess files
      # Instead of putting all the content of this .htaccess right here
      # in a Directory section
      AllowOverride All
    </Directory>
</VirtualHost>
于 2013-09-12T15:53:52.290 回答