Hay una opción para ocultar la versión para que solo muestre nginx, pero ¿hay alguna forma de ocultarla también para que no muestre nada o cambie el encabezado?
nginx
http-headers
daniels
fuente
fuente
Respuestas:
Al igual que Apache, esta es una edición rápida de la fuente y se vuelve a compilar. De Calomel.org :
Edición de marzo de 2011: A continuación, apoyamos a Flavius para señalar una nueva opción, reemplazando el HttpHeadersModule estándar de Nginx con el HttpHeadersMoreModule bifurcado . Volver a compilar el módulo estándar sigue siendo la solución rápida, y tiene sentido si desea usar el módulo estándar y no cambiará la cadena del servidor con frecuencia. Pero si desea más que eso, HttpHeadersMoreModule es un proyecto sólido y le permite hacer todo tipo de magia negra en tiempo de ejecución con sus encabezados HTTP.
fuente
r->headers_out.server
.Si está utilizando nginx para proxy una aplicación de fondo y desea que el back-end anuncie su propio
Server:
encabezado sin que nginx lo sobrescriba, entonces puede ir dentro de suserver {…}
stanza y configurar:Eso convencerá a nginx de dejar ese encabezado solo y no reescribir el valor establecido por el back-end.
fuente
La última actualización fue hace un tiempo, así que esto es lo que funcionó para mí en Ubuntu:
Luego agregue las siguientes dos líneas a la
http
sección denginx.conf
, que generalmente se encuentra en /etc/nginx/nginx.conf:Además, no olvide reiniciar nginx con
sudo service nginx restart
.fuente
more_set_headers 'Server: ';
Simple, edite /etc/nginx/nginx.conf y elimine el comentario de
Busca la sección http .
fuente
Es muy simple: agregue estas líneas a la sección del servidor:
fuente
nginx-extra
para obtener ese módulo.Hay un módulo especial: http://wiki.nginx.org/NginxHttpHeadersMoreModule
fuente
--add-module=/path-to-headers-more-nginx-module
Instalar Nginx Extras
Los detalles del servidor se pueden eliminar de la respuesta agregando las siguientes dos líneas en el nginx.conf (en la sección http)
fuente
yum install nginx-extras
no funciona, supongo que esto funciona en Debia / Ubuntu, etc. con elapt-get
.)Si está de acuerdo con cambiar el encabezado a otra cadena de cinco letras o menos, simplemente puede parchear el binario.
Lo cual, como solución, tiene algunas ventajas notables. Es decir, que puede permitir que el administrador de paquetes maneje sus versiones de nginx (por lo tanto, sin compilar desde la fuente) incluso si nginx-extras no está disponible para su distribución, y no necesita preocuparse por ninguno de los El código de algo como nginx-extras es vulnerable.
Por supuesto, también querrá establecer la opción
server_tokens off
, para ocultar el número de versión, o parchear esa cadena de formato también.Digo "cinco letras o menos" porque, por supuesto, siempre puedes reemplazar:
con
dejando los dos últimos bytes sin cambios.
Si realmente desea más de cinco caracteres, querrá dejar server_tokens y reemplazar la cadena de formato (un poco más larga), aunque nuevamente hay un límite superior en esa longitud impuesto por la longitud de la cadena de formato - 1 (para el retorno de carro).
... Si nada de lo anterior tiene sentido para usted, o si nunca ha parcheado un binario antes, es posible que desee mantenerse alejado de este enfoque.
fuente
sed
comando anterior, la`which nginx`
parte devuelve la ruta al binario y elsed
comando reemplaza el byte.nginx
para que los cambios surtan efecto. Todo eso dicho? Te insto a que no uses una de las otras respuestas. Si todas las cosas que digo ya no te son familiares y no sabes para qué/etc
sirve el directorio, un truco como este es un poco peligroso.La única forma es modificar el archivo src / http / ngx_http_header_filter_module.c. Cambié nginx en la línea 48 a una cadena diferente.
Lo que puede hacer en el archivo de configuración nginx es desactivar server_tokens . Esto evitará que nginx imprima el número de versión.
Para ver las cosas, intente curl -I http://vurbu.com/ | servidor grep
Debería volver
fuente
Después de leer la respuesta de Parthian Shot, busco en el
/usr/sbin/nginx
archivo binario. Luego descubrí que el archivo contiene estas tres líneas.Básicamente, los dos primeros están destinados a la
server_tokens on;
directiva (versión del servidor incluida). Luego cambio los criterios de búsqueda para que coincidan con esas líneas dentro del archivo binario.Después de profundizar más, descubrí que el mensaje de error producido por nginx también se incluye en este archivo.
Hay tres de ellos, uno sin la versión, dos de ellos incluyen la versión. Entonces ejecuto el siguiente comando para reemplazar la cadena nginx dentro del mensaje de error.
fuente
/usr/sbin
carpeta produce esto:sed: can't read is: No such file or directory
Según la documentación de nginx , admite valores personalizados o incluso la exclusión:
pero lamentablemente solo con una suscripción comercial :
fuente
Sé que la publicación es un poco antigua, pero he encontrado una solución fácil que funciona en la distribución basada en Debian sin compilar nginx desde la fuente.
Primero instale el paquete nginx-extras
Luego cargue el módulo más de encabezados http nginx editando nginx.conf y agregando la siguiente línea dentro del bloque del servidor
Una vez hecho esto, tendrá acceso a las directivas more_set_headers y more_clear_headers.
fuente
El paquete Nginx-extra está en desuso ahora.
Por lo tanto, lo siguiente ahora funcionó para mí cuando intenté instalar varios paquetes more_set_headers 'Servidor: Mi propio servidor';
Simplemente puede hacer lo siguiente y no se devolverá ninguna información de servidor o versión
si solo quieres eliminar el número de versión, esto funciona
fuente
¿Pregunta sobre el valor del encabezado del servidor en la respuesta? Puede intentar cambiar eso con una directiva add_header, pero no estoy seguro de si funcionará. http://wiki.codemongers.com/NginxHttpHeadersModule
fuente