Es gibt eine Option zum Ausblenden der Version, sodass nur Nginx angezeigt wird. Gibt es jedoch auch eine Möglichkeit, diese auszublenden, damit nichts angezeigt oder der Header geändert wird?
nginx
http-headers
Daniels
quelle
quelle
Antworten:
Wie bei Apache ist dies eine schnelle Bearbeitung der Quelle und Neukompilierung. Von Calomel.org :
Bearbeiten im März 2011: Wir bitten Flavius unten, auf eine neue Option hinzuweisen, die das Standard- HttpHeadersModule von Nginx durch das gegabelte HttpHeadersMoreModule ersetzt . Das Neukompilieren des Standardmoduls ist immer noch die schnelle Lösung und sinnvoll, wenn Sie das Standardmodul verwenden möchten und die Serverzeichenfolge nicht häufig ändern. Wenn Sie jedoch mehr als das wollen, ist das HttpHeadersMoreModule ein starkes Projekt, mit dem Sie mit Ihren HTTP-Headern alle Arten von schwarzer Laufzeitmagie ausführen können.
quelle
r->headers_out.server
.Wenn Sie nginx zum Proxy einer Back-End-Anwendung verwenden und möchten, dass das Back-End seinen eigenen
Server:
Header ankündigt, ohne dass nginx ihn überschreibt, können Sie in Ihreserver {…}
Zeilengruppe gehen und Folgendes festlegen:Das wird nginx davon überzeugen, diesen Header in Ruhe zu lassen und den vom Back-End festgelegten Wert nicht neu zu schreiben.
quelle
Das letzte Update war vor einer Weile, also hier ist, was für mich unter Ubuntu funktioniert hat:
Fügen Sie dann die folgenden zwei Zeilen zu dem
http
Abschnitt von hinzunginx.conf
, der sich normalerweise unter /etc/nginx/nginx.conf befindet:Vergessen Sie auch nicht, nginx mit neu zu starten
sudo service nginx restart
.quelle
more_set_headers 'Server: ';
Bearbeiten Sie einfach /etc/nginx/nginx.conf und entfernen Sie den Kommentar aus
Suchen Sie nach http Abschnitt.
quelle
Es ist ganz einfach: Fügen Sie diese Zeilen zum Serverabschnitt hinzu:
quelle
nginx-extra
, um dieses Modul zu erhalten.Es gibt ein spezielles Modul: http://wiki.nginx.org/NginxHttpHeadersMoreModule
quelle
--add-module=/path-to-headers-more-nginx-module
Installieren Sie Nginx Extras
Serverdetails können aus der Antwort entfernt werden, indem die folgenden zwei Zeilen in die Datei nginx.conf eingefügt werden (unter http).
quelle
yum install nginx-extras
funktioniert nicht - ich nehme an, dass dies unter Debia / Ubuntu usw. mit dem funktioniertapt-get
.)Wenn Sie den Header nur in eine andere Zeichenfolge mit maximal fünf Buchstaben ändern möchten, können Sie die Binärdatei einfach patchen.
Was als Lösung einige bemerkenswerte Vorteile hat. Das heißt, dass Sie zulassen können, dass Ihre Nginx-Versionierung vom Paketmanager verwaltet wird (also kein Kompilieren aus dem Quellcode), auch wenn für Ihre Distribution keine Nginx-Extras verfügbar sind und Sie sich um keine der zusätzlichen kümmern müssen Code von so etwas wie Nginx-Extras ist anfällig.
Natürlich möchten Sie auch die Option festlegen
server_tokens off
, die Versionsnummer auszublenden oder auch diese Formatzeichenfolge zu patchen.Ich sage "fünf Buchstaben oder weniger", weil Sie natürlich immer ersetzen können:
mit
Lassen Sie die letzten zwei Bytes unverändert.
Wenn Sie tatsächlich mehr als fünf Zeichen möchten, sollten Sie server_tokens aktiviert lassen und die (etwas längere) Formatzeichenfolge ersetzen. Auch hier gibt es eine Obergrenze für diese Länge, die durch die Länge der Formatzeichenfolge 1 (für die Wagenrücklauf).
... Wenn keiner der oben genannten Punkte für Sie sinnvoll ist oder Sie noch nie zuvor eine Binärdatei gepatcht haben, sollten Sie sich von diesem Ansatz fernhalten.
quelle
sed
obigen Befehl aus, der`which nginx`
Teil gibt den Pfad zur Binärdatei zurück und dersed
Befehl ersetzt das Byte.nginx
die Änderungen wirksam werden. Alles was gesagt hat? Ich fordere Sie auf, keine der anderen Antworten zu verwenden. Wenn Ihnen all die Dinge, die ich sage, noch nicht vertraut sind und Sie nicht wissen, wofür das/etc
Verzeichnis gedacht ist, ist ein solcher Hack gefährlich.Die einzige Möglichkeit besteht darin, die Datei src / http / ngx_http_header_filter_module.c zu ändern. Ich habe Nginx in Zeile 48 in eine andere Zeichenfolge geändert.
In der Nginx-Konfigurationsdatei können Sie server_tokens festlegen . Dadurch wird verhindert, dass Nginx die Versionsnummer druckt.
Versuchen Sie Curl -I http://vurbu.com/ |, um die Dinge zu überprüfen grep Server
Es sollte zurückkehren
quelle
Nachdem ich die Antwort von Parthian Shot gelesen habe, grabe ich mich in eine
/usr/sbin/nginx
Binärdatei. Dann fand ich heraus, dass die Datei diese drei Zeilen enthält.Grundsätzlich sind die ersten beiden für die
server_tokens on;
Direktive gedacht (Server-Version enthalten). Dann ändere ich die Suchkriterien so, dass sie mit diesen Zeilen in der Binärdatei übereinstimmen.Nachdem ich weiter gegraben hatte, stellte ich fest, dass die von nginx erzeugte Fehlermeldung auch in dieser Datei enthalten ist.
Es gibt drei davon, eine ohne Version, zwei davon enthalten die Version. Daher führe ich den folgenden Befehl aus, um die Nginx-Zeichenfolge in der Fehlermeldung zu ersetzen.
quelle
/usr/sbin
Ordners ausgeführt wird, ergibtsed: can't read is: No such file or directory
Laut Nginx- Dokumentation werden benutzerdefinierte Werte oder sogar der Ausschluss unterstützt:
aber leider nur mit einem kommerziellen abonnement :
quelle
Ich weiß, dass der Beitrag ein bisschen alt ist, aber ich habe eine einfache Lösung gefunden, die auf Debian-basierter Distribution funktioniert, ohne Nginx aus dem Quellcode zu kompilieren.
Installieren Sie zuerst das Nginx-Extras-Paket
Laden Sie dann das Modul nginx http headers more, indem Sie die Datei nginx.conf bearbeiten und die folgende Zeile in den Serverblock einfügen
Sobald dies erledigt ist, haben Sie Zugriff auf die Anweisungen more_set_headers und more_clear_headers.
quelle
Das Nginx-Extra-Paket ist jetzt veraltet.
Das Folgende funktionierte daher jetzt für mich, als ich versuchte, verschiedene Pakete zu installieren. More_set_headers 'Server: My Very Own Server';
Sie können einfach Folgendes tun, und es werden keine Server- oder Versionsinformationen zurückgesendet
Wenn Sie nur die Versionsnummer entfernen möchten, funktioniert dies
quelle
Fragen Sie nach dem Server-Header-Wert in der Antwort? Sie können versuchen, dies mit einer Direktive add_header zu ändern, aber ich bin mir nicht sicher, ob es funktionieren wird. http://wiki.codemongers.com/NginxHttpHeadersModule
quelle