Eu tenho a seguinte configuração do Apache, que exibe um erro 503 Service Unavailable para todos os visitantes, exceto para meu endereço IP:
ErrorDocument 503 /503.html
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^127.0.0.1$
RewriteCond %{REQUEST_URI} !^/503.html$
RewriteRule .* - [R=503]
Isso é para que eu possa realizar a manutenção do meu site sem que os erros apareçam para os usuários. (Estou usando meu IP real, não 127.0.0.1
.)
No entanto, para ativar ou desativar isso, preciso comentar/descomentar todas as linhas ou removê-las completamente. No meu outro servidor rodando nginx, usei uma cláusula geo com uma variável (como visto nesta pergunta ). Então eu posso apenas mudar default
de 0
para 1
para ligá-lo.
Existe uma maneira de fazer algo semelhante no Apache?
Se você não deseja reiniciar o Apache para alterar as configurações (o que é um requisito para alterações na configuração) e não está usando
.htaccess
arquivos (o que você não deseja, realmente )Você pode configurar o que fazemos (geralmente por meio de nosso balanceador de carga), um teste para um status de manutenção, por exemplo, adicionando um teste
onde uma janela de manutenção começa criando um arquivo maintenance.txt (por exemplo, com
touch maintenance.txt
) no site ativo.Veja como o Debian/Ubuntu configura o Apache. Eles usam trechos de configuração para sites, módulos e configurações gerais armazenados em arquivos
/etc/apache2/{mod|sites|conf}-available
que recebem links simbólicos/etc/apache2/{mod|sites|conf}-enabled
para ativá-lo. Esses*-enabled
diretórios sãoInclude
editados no arquivo de configuração principal.a2Xen
Além disso , eles têma2Xdis
comandos que apenas criam o link simbólico ou o excluem para facilitar a manutenção.A resposta de HBruijn é a melhor, mas aqui está outra opção que acabei de descobrir que funciona:
Em seguida, o
0
pode ser alterado para1
ativá-lo.