Eu configurei várias entradas do VirtualHost.
<VirtualHost *:80>
ServerName subdomain1.domain.tld
[...]
DocumentRoot /var/www/html/subdomain1
[...]
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain2.domain.tld
[...]
DocumentRoot /var/www/html/subdomain2
[...]
</VirtualHost>
Mais tarde, habilitei o cgi (cgid) por algum motivo. Desde então, esse CGI é acionado perguntando em algum caminho domain.tld/a_path_for_a_cgi/
. Tanto quanto posso ver, não dependendo de subdomínios configurados para entradas VirtualHost.
Eu gostaria que isso fosse desativado para a maioria dos subdomínios:
subdomain1.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain2.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain3.domain.tld/a_path_for_a_cgi/ => allow
Isso é possível no servidor Apache ou devo dividir o cenário para ter dois servidores Apache? Devo bifurcar o cenário de qualquer maneira por segurança, já que o cgi foi enviado desativado (Debian Stretch)?
Se você deseja habilitar o CGI apenas em um específico
VirtualHost
, mova suas diretivas específicas do cgi (ScriptAlias
ou o<Directory/>
-block contendoOptions +ExecCGI
, o que estiver configurado) da configuração do servidor principal para o destinoVirtualHost
.O módulo
mod_cgi
(oumod_cgid
) está obviamente ativo em todos os vhosts se estiver ativado no servidor, mas você não precisa usá-lo em todos os vhosts.É verdade que a maioria dos módulos está desativada por padrão por motivos de segurança e desempenho, mas IMO você não precisa configurar um segundo servidor apenas porque precisa deste módulo em um vhost. Deve ser suficiente se você não puder executar nenhum script nos outros vhosts (falta
ScriptAlias
/ExecCGI
ou acesso proibido ao script<Directory/>
).Links: