Existe uma opção para ocultar a versão, para que ela exiba apenas o nginx, mas existe uma maneira de ocultar isso também para que não mostre nada ou mude o cabeçalho?
nginx
http-headers
daniels
fonte
fonte
Respostas:
Como o Apache, esta é uma edição rápida na fonte e recompila. Em Calomel.org :
Março de 2011 EDIT: Adereços para Flavius abaixo por apontar uma nova opção, substituindo o padrão de Nginx HttpHeadersModule com o bifurcada HttpHeadersMoreModule . A recompilação do módulo padrão ainda é a solução rápida e faz sentido se você deseja usar o módulo padrão e não alterará a sequência do servidor com frequência. Mas se você quiser mais do que isso, o HttpHeadersMoreModule é um projeto forte e permite que você faça todo tipo de magia negra em tempo de execução com seus cabeçalhos HTTP.
fonte
r->headers_out.server
.Se você estiver usando o nginx para fazer proxy de um aplicativo de back-end e desejar que o back-end anuncie seu próprio
Server:
cabeçalho sem que o nginx o substitua, você poderá entrar naserver {…}
estrofe e definir:Isso convencerá o nginx a deixar esse cabeçalho sozinho e a não reescrever o valor definido pelo back-end.
fonte
A última atualização foi há um tempo atrás, então aqui está o que funcionou para mim no Ubuntu:
Em seguida, adicione as duas linhas a seguir na
http
seçãonginx.conf
geralmente localizada em /etc/nginx/nginx.conf:Além disso, não esqueça de reiniciar o nginx com
sudo service nginx restart
.fonte
more_set_headers 'Server: ';
Simples, edite o /etc/nginx/nginx.conf e remova o comentário de
Procure a seção http .
fonte
É muito simples: adicione estas linhas à seção do servidor:
fonte
nginx-extra
para obter esse módulo.Existe um módulo especial: http://wiki.nginx.org/NginxHttpHeadersMoreModule
fonte
--add-module=/path-to-headers-more-nginx-module
Instalar extras do Nginx
Os detalhes do servidor podem ser removidos da resposta adicionando as seguintes duas linhas no nginx.conf (na seção http)
fonte
yum install nginx-extras
não funciona - suponho que isso funcione no Debia / Ubuntu etc com oapt-get
.)Se você concorda em mudar o cabeçalho para outra sequência de cinco letras ou menos, basta corrigir o binário.
Que, como solução, tem algumas vantagens notáveis. Ou seja, você pode permitir que o controle de versão do nginx seja gerenciado pelo gerenciador de pacotes (portanto, sem compilação a partir do código-fonte), mesmo que o nginx-extras não esteja disponível para sua distribuição e você não precise se preocupar com nada disso. código de algo como nginx-extras sendo vulnerável.
Obviamente, você também desejará definir a opção
server_tokens off
, ocultar o número da versão ou corrigir a formatação da string também.Eu digo "cinco letras ou menos" porque é claro que você sempre pode substituir:
com
deixando os dois últimos bytes inalterados.
Se você realmente quiser mais de cinco caracteres, deixe server_tokens ativado e substitua a string de formato (um pouco mais longa), embora novamente haja um limite superior para esse comprimento imposto pelo comprimento da string de formato - 1 (para o retorno de carro).
... Se nenhuma das opções acima fizer sentido para você, ou você nunca tiver corrigido um binário antes, você pode ficar longe dessa abordagem.
fonte
sed
comando acima, a`which nginx`
parte retorna o caminho para o binário e osed
comando faz a substituição de bytes.nginx
para que as alterações entrassem em vigor. Tudo o que disse? Peço que você não use uma das outras respostas. Se todas as coisas que estou dizendo já não lhe são familiares e você não sabe para que/etc
serve o diretório, um hack como esse é meio perigoso.A única maneira é modificar o arquivo src / http / ngx_http_header_filter_module.c. Mudei o nginx na linha 48 para uma string diferente.
O que você pode fazer no arquivo de configuração nginx é desativar server_tokens . Isso impedirá que o nginx imprima o número da versão.
Para verificar as coisas, tente enrolar -I http://vurbu.com/ | Servidor grep
Deve retornar
fonte
Depois de ler a resposta de Parthian Shot, vasculho o
/usr/sbin/nginx
arquivo binário. Então eu descobri que o arquivo contém essas três linhas.Basicamente, os dois primeiros destinam-se à
server_tokens on;
diretiva (versão do servidor incluída). Em seguida, altero os critérios de pesquisa para corresponder a essas linhas no arquivo binário.Depois de cavar mais, descobri que a mensagem de erro produzida pelo nginx também está incluída neste arquivo.
Existem três deles, um sem a versão, dois deles incluíram a versão. Então, eu executo o seguinte comando para substituir a string nginx na mensagem de erro.
fonte
/usr/sbin
pasta gera o seguinte:sed: can't read is: No such file or directory
De acordo com a documentação do nginx , ele suporta valores personalizados ou até a exclusão:
mas infelizmente apenas com uma assinatura comercial :
fonte
Eu sei que o post é meio antigo, mas achei fácil uma solução que funciona na distribuição baseada no Debian sem compilar o nginx a partir do código-fonte.
Primeiro instale o pacote nginx-extras
Em seguida, carregue o módulo nginx http headers more editando o nginx.conf e adicionando a seguinte linha dentro do bloco do servidor
Uma vez feito, você terá acesso às diretivas more_set_headers e more_clear_headers.
fonte
O pacote Nginx-extra está obsoleto agora.
Portanto, o seguinte funcionou agora para mim, pois tentei instalar vários pacotes more_set_headers 'Server: My Very Own Server';
Você pode fazer o seguinte e nenhuma informação de servidor ou versão será enviada de volta
se você quiser apenas remover o número da versão, isso funciona
fonte
Você está perguntando sobre o valor do cabeçalho do servidor na resposta? Você pode tentar mudar isso com uma diretiva add_header, mas não tenho certeza se funcionará. http://wiki.codemongers.com/NginxHttpHeadersModule
fonte