设置ubuntu vhost文件时遇到问题

时间:2013-09-12 15:21:09

标签: apache ubuntu apache2

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

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

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

我有一个站点testsite.com,我需要为https配置vhost

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

1 个答案:

答案 0 :(得分:0)

通常,VirtualHost的最佳位置是sites-available文件夹中的新文件。标有100-之类的数字。

类似于sites-available/100-443-myproject.example.com

这样,当您使用ae2ensitea2dissite命令时,您将拥有默认设置和myproject.example.com网站列表中的启用或停用功能。

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

如果您的VirtualHost用于端口80,则必须使用<VirtualHost *:80>配置指令(或<VirtualHost <my IP>:80>,取决于NameVirtualHost设置)。如果你的VirtualHost是用于SSL端口的,那么你需要使用<VirtualHost *:443>,并且必须确保a2ensitea2dissite这个Virtualhost是唯一的SSL已启用VirtualHost定义(因此不应启用ssl-default)。

使用端口80,ServerName指令足以让apache决定应该采用哪个VirtualHost。使用端口443和SSL这是不够的,因为在主机头/ ServerName可以匹配之前进行SSL否定。因此,多个SSL Vh必须使用不同的端口或使用新的SNI系统as described here for example

现在对于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>