151 votes

Comment modifiez-vous l'en-tête du serveur renvoyé par nginx?

Il y a une option pour masquer la version afin qu'elle affiche uniquement nginx, mais existe-t-il un moyen de la masquer également pour ne pas afficher quoi que ce soit ou modifier l'en-tête?

154voto

Brandon Rhodes Points 21188

Si vous utilisez nginx pour créer un proxy pour une application dorsale et souhaitez que le back-end annonce son propre en-tête Server: sans que nginx ne l'écrase, vous pouvez accéder à votre strophe server {…} Et mettre:

 proxy_pass_header Server;
 

Cela convaincra nginx de laisser cet en-tête seul et de ne pas réécrire la valeur définie par le back-end.

60voto

joelhardi Points 6538

Comme Apache, c'est un moyen rapide de modifier à la source et recompiler. À Partir De Calomel.org:

Le Serveur: string est l'en-tête qui est envoyé au client afin de lui indiquer leur quel type de serveur http vous êtes en cours d'exécution et éventuellement ce version. Cette chaîne est utilisée par des endroits comme Alexia et Netcraft pour recueillir des statistiques sur le nombre et de ce que type de serveur web sont en direct sur la Internet. À l'appui de l'auteur et statistiques pour Nginx nous vous recommandons en gardant cette chaîne. Mais, pour de sécurité, vous ne voulez pas les gens à savoir ce que vous êtes en cours d'exécution et vous pouvez modifier dans le code source. Modifier le fichier source src/http/ngx_http_header_filter_module.c à regarder les lignes 48 et 49. Vous pouvez changer la Chaîne à tout ce que vous voulez.

## vi src/http/ngx_http_header_filter_module.c (lines 48 and 49)
static char ngx_http_server_string[] = "Server: MyDomain.com" CRLF;
static char ngx_http_server_full_string[] = "Server: MyDomain.com" CRLF;

Mars 2011 edit: Accessoires de Flavius ci-dessous pour souligner une nouvelle option, en remplacement de Nginx standard HttpHeadersModule avec la fourche HttpHeadersMoreModule. Recompiler le module standard est toujours la solution rapide, et a de sens que si vous voulez utiliser le module standard et ne pas être en train de changer le serveur de chaîne. Mais si vous voulez plus que cela, le HttpHeadersMoreModule est un projet fort et vous permet de faire toutes sortes d'exécution de la magie noire avec vos en-têtes HTTP.

38voto

Farsheed Points 397

C'est très simple: Ajoutez ces lignes à la section serveur:

     server_tokens off;
    more_set_headers 'Server: My Very Own Server ;)';
 

36voto

ruionwriting Points 627

Simple, éditez /etc/nginx/nginx.conf et supprimez un commentaire de

 #server_tokens off;
 

Recherchez la section http .

25voto

Flavius Points 6115

Il existe un module spécial: http://wiki.nginx.org/NginxHttpHeadersMoreModule

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X