O bloco do Diretório VirtualHost deve estar contido na sub-rotina do VirtualHost?

3

Vejo frequentemente exemplos de configurações do VirtualHost em que <Directory> blocos são colocados fora da sub-rotina <VirtualHost> da seguinte forma:

# /etc/httpd/conf.d/example1.conf

<Directory /var/www/html/example1>
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/example1"
    ServerName www.example.com
    ServerAlias example.com
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/error_log_example1"
    CustomLog "/var/log/httpd/access_log_example1" combined
</VirtualHost>

O exemplo a seguir, com o bloco <Directory> contido dentro da , a estrofe <VirtualHost> está mais semanticamente correto?

# /etc/httpd/conf.d/example2.conf

<VirtualHost *:80>

    <Directory /var/www/html/example2>
        Require all granted
    </Directory>

    DocumentRoot "/var/www/html/example2"
    ServerName www.example.org
    ServerAlias example.org
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/error_log_example2"
    CustomLog "/var/log/httpd/access_log_example2" combined

</VirtualHost>

O segundo método parece correto para mim já que o bloco pertence ao VirtualHost individual e, se necessário, irá substituir as configurações no httpd.conf principal.

Editar: o segundo método exigiria a duplicação do bloco <Directory> se o TLS / SSL estiver habilitado, o que não é muito DRY. Por esse motivo, o primeiro método parece estar correto.

    
por Alxs 27.08.2017 / 20:21

1 resposta

2

Do documento do Apache nas seções de configuração :

  • <Directory> is processed in the order shortest directory component to longest. For example, <Directory "/var/web/dir"> will be processed before <Directory "/var/web/dir/subdir">.

  • If multiple <Directory> sections apply to the same directory they are processed in the configuration file order.

  • Sections inside <VirtualHost> sections are applied after the corresponding sections outside the virtual host definition. This allows virtual hosts to override the main server configuration.

Os dois trechos estão corretos, assim como sua suposição.

    
por 28.08.2017 / 06:19