como faço para configurar um servidor web mínimo, que serve apenas uma página em todas as solicitações?

5

Um servidor da Web mínimo na porta 80 seria

python -m SimpleHTTPServer 80

mas gostaria de mostrar apenas uma página o tempo todo chamado maintenance.html , independentemente da página solicitada.

O URL no navegador ainda deve manter o URL, que o visitante solicitou, mas nenhuma página de erro.

    
por rubo77 02.11.2012 / 12:45

2 respostas

5

Dando esta resposta para o valor de entretenimento principalmente, mas você poderia usar qualquer super-servidor (xinetd pode fazer o trabalho também) e faça com que ele execute um script simples para cada solicitação na porta 80. O script esperaria por uma linha em branco na entrada padrão e depois imprimiria uma resposta estática preparada. Não tenho certeza de quanto mais leve você consegue.

Por exemplo, se estiver usando o tcpserver do DJB (acho fácil usá-lo para tarefas triviais) você pode fazer:

$ tcpserver 127.0.0.1 1080 sh -c 'awk "/^\r*$/ { exit }"; cat answer'

E no arquivo answer , você pode ter:

HTTP/1.0 200
Date: Fri, 02 Nov 2012 16:05:54 GMT
Content-Length: 15
Content-Type: text/html; charset=utf-8

This is a test

Você pode ser criativo o quanto quiser.

E aqui está como eu testo:

$ wget -q -O - http://localhost:1080/
This is a test

ATUALIZAÇÃO: Para qualquer um considerando seriamente isso, para um uso realista de tcpserver , é melhor começar assim:

tcpserver -H -R -l $HOSTNAME -u $(id -u nobody) -g $(id -g nobody) 0.0.0.0 80 sh -c 'awk "/^\r*$/ { exit }"; cat answer'

Por padrão, tcpserver pesquisa informações sobre a conexão de entrada e -H (não procura o nome remoto no DNS) e -R (não procura informações remotas com ident) acelerará a resposta às conexões de entrada. -u e -g descartarão os privilégios depois de receber a conexão na porta 80, e você terá que iniciá-lo como root para poder escutar na porta 80.

E, claro, certifique-se de que nada mais esteja escutando na porta 80.

    
por 02.11.2012 / 17:24
1

Presumivelmente, isso é solicitado pela resposta a sua pergunta anterior .

Por que não (temporariamente) aplicar uma regra de redirecionamento no Apache para apontar tudo para sua página de localização? (e se você fizer isso por meio de uma solicitação de proxy em vez de um redirecionamento, qualquer script PHP nesse local poderá ler a URL solicitada). Você pode trocar em uma configuração diferente sem perder qualquer solicitação usando uma reinicialização normal.

    
por 02.11.2012 / 15:11

Tags