Nginx-Optimierung --- Versionsnummer und Cache-Zeit für Webseiten verbergen Konfigurieren Sie Nginx, um die Versionsnummer auszublenden In einer Produktionsumgebung müssen Sie die Nginx-Versionsnummer verbergen, um Sicherheitsprobleme zu vermeiden. Offenlegung von Sicherheitslücken Methode anzeigen ● Verwenden Sie das Fiddler-Tool, um die Nginx-Versionsnummer auf dem Windows-Client zu überprüfen Verwenden Sie den Befehl „curl -I URL“, um die Anzeige im CentOS-System durchzuführen So verbergen Sie die Versionsnummer in Nginx ● Ändern Sie die Konfigurationsdateimethode ●Quellcode ändern Ändern der Konfigurationsdateimethode 1. Setzen Sie den Wert der Option server_tokens in der Nginx-Konfigurationsdatei auf off [root@www conf]# vim nginx.conf ..... Server-Tokens aus; ..... [root@www conf]# nginx -t 2. Starten Sie den Dienst neu und rufen Sie die Website mit dem Befehl curl -I auf, um zu testen [root@www conf]# service nginx restart [root@www conf]# curl -1 http://192.1 68.9.209/ HTTP/1.1200 OK Server: nginx 3. Wenn die Option fastcgi param SERVER SOFTWARE in der PHP-Konfigurationsdatei konfiguriert ist. Bearbeiten Sie dann die php-fpm-Konfigurationsdatei und ändern Sie den Wert des fastcgi-Parameters SERVER SOFTWARE in fastcgi_param SERVER_SOFTWARE nginx; Quellcode ändern Die Nginx-Quellcodedatei /usr/src/nginx-1.12.0/src/core/nginx.h enthält Versionsinformationen. Sie können sie so einstellen, dass sie nach Belieben neu kompiliert und installiert wird, und die Versionsinformationen ausblenden. Beispiel: #define NGINX_ _VERSION "1.1.1" , ändere die Versionsnummer auf 1.1.1 #define NGINX_ VER "IIS/", ändere den Softwaretyp in IIS Starten Sie den Dienst neu und rufen Sie die Website mit dem Befehl curl -I auf, um sie zu testen. Nginx-Benutzer und -Gruppe ändern Der Nginx-Laufzeitprozess muss über Benutzer- und Gruppenunterstützung verfügen, um die Zugriffskontrolle beim Lesen von Websitedateien zu implementieren. Nginx verwendet standardmäßig das Benutzerkonto und das Gruppenkonto nobody, was normalerweise geändert werden muss Änderungsmethode ●Geben Sie beim Kompilieren und Installieren den Benutzer und die Gruppe an. ●Ändern Sie die Konfigurationsdatei, um den Benutzer und die Gruppe anzugeben. Ändern Sie die Konfigurationsdatei, um anzugeben 1. Erstellen Sie ein neues Benutzerkonto, beispielsweise nginx 2. Ändern Sie die Benutzeroption in der Hauptkonfigurationsdatei und geben Sie das Benutzerkonto an 3. Starten Sie den Nginx-Dienst neu, damit die Konfiguration wirksam wird 4. Verwenden Sie den Befehl ps aux, um die Prozessinformationen von nginx anzuzeigen und den laufenden Benutzer zu überprüfen Auswirkung der Kontoänderung [root@www conf]# vi nginx.conf Benutzer nginx nginx; [root@www conf]# service nginx restart [root@www conf]# ps aux lgrep nginx root 1300340.0 0.0 20220 620? Ss 19:41 0:00 nginx: Master-Prozess /usr/local/sbin/nginx nginx 1300350.0 0.0 20664 1512 ?S 19:41 0:00 nginx: Arbeitsprozess Konfigurieren Sie die Cachezeit für Nginx-Webseiten Wenn Nginx Webseitendaten an den Client zurückgibt, können Sie die Cache-Zeit festlegen, um eine direkte Rückgabe zu ermöglichen, wenn derselbe Inhalt in Zukunft angefordert wird. Dadurch werden wiederholte Anforderungen vermieden und der Zugriff beschleunigt. Normalerweise wird sie für statische Webseiten festgelegt, und für dynamische Webseiten wird keine Cache-Zeit festgelegt. Sie können Fiddler im Windows-Client verwenden, um die Cache-Zeit der Webseite anzuzeigen. So richten Sie es ein Sie können die Konfigurationsdatei ändern und Ablaufparameter für bestimmte Inhalte im HTTP-Abschnitt, Serverabschnitt oder Standortabschnitt hinzufügen. Beispiel Ändern Sie die Nginx-Konfigurationsdatei und fügen Sie den Parameter „expires“ im Abschnitt „location“ hinzu. Standort ~ \.(gifjpgliepglpnglbmplico)$ { Stamm-HTML; läuft in 1 Tag ab; Beispieldemonstration zum Ausblenden der Versionsnummer 1. Kompilieren und installieren Sie den Nginx-Dienst Schritt 1: Das Quellpaket per Remote-Zugriff unter Windows abrufen und unter Linux mounten [root@localhost ~]# smbclient -L //192.168.235.1 Geben Sie das Passwort von SAMBA\root ein: Freigabename Typ Kommentar --------- ---- ------- LNMP-Datenträger [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abc Passwort für root@//192.168.235.1/LNMP: [root@localhost ~]# ls /abc Discuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gz spiel.jpg php-7.1.10.tar.bz2 mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz nginx-1.12.0.tar.gz Schritt 2: Entpacken Sie das Quellpaket [root@localhost ~]# cd /abc [root@localhost abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt [root@localhost abc]# ls /opt nginx-1.12.0 rh Schritt 3: Herunterladen und Installieren des Kompilierungskomponentenpakets [root@localhost abc]# cd /opt [root@localhost opt]# yum install -y \ > gcc \ //C-Sprache> gcc-c++ \ //C++-Sprache> pcre-devel \ //PCRE-Sprachtool> zlib-devel //Bibliothek mit Komprimierungsfunktionen Schritt 4: Erstellen Sie einen Programmbenutzer und konfigurieren Sie die mit dem Nginx-Dienst verbundenen Komponenten [root@localhost opt]# useradd -M -s /sbin/nologin nginx //Programmbenutzer nginx erstellen und die Anmeldung beim Terminal einschränken [root@localhost opt]# cd nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./konfigurieren \ //nginx konfigurieren > --prefix=/usr/local/nginx \ //Installationspfad angeben> --user=nginx \ //Benutzernamen angeben> --group=nginx \ //Geben Sie die Gruppe an, zu der der Benutzer gehört> --with-http_stub_status_module //Statusstatistikmodul installieren Schritt 5: Nginx kompilieren und installieren [root@localhost nginx-1.12.0]# make && make install Schritt 6: Optimieren Sie das Startskript des Nginx-Dienstes und erstellen Sie einen Befehls-Softlink [root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //Erstellen Sie einen Softlink zum Nginx-Servicebefehl zum Systembefehl [root@localhost nginx-1.12.0]# systemctl stop firewalld.service //Firewall ausschalten [root@localhost nginx-1.12.0]# setenforce 0 //Erweiterte Sicherheitsfunktionen deaktivieren [root@localhost nginx-1.12.0]# nginx //Geben Sie nginx ein, um den Dienst zu starten [root@localhost nginx-1.12.0]# netstat -ntap | grep 80 //Zeigen Sie den Dienstport 80 an, um zu zeigen, dass TCP aktiviert ist 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7520/nginx: master Schritt 7: systemctl verwaltet nginx-Skripte [root@localhost ~]# vim /lib/systemd/system/nginx.service ##Konfigurationsdatei erstellen [Unit] Beschreibung=nginx ##Beschreibung Nach=network.target ##Beschreibung des Diensttyps [Dienst] Type=forking ##Im Hintergrund ausgeführt formPIDFile=/usr/local/nginx/logs/nginx.pid ##Speicherort der PID-DateiExecStart=/usr/local/nginx/sbin/nginx ##Dienst startenExecReload=/usr/bin/kill -s HUP $MAINPID ##Neuladen gemäß PID konfigurierenExecStop=/usr/bin/kill -s QUIT $MAINPID ##Prozess gemäß PIDPrivateTmp=true beenden [Installieren] WantedBy=Mehrbenutzer.Ziel [root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service ##Ausführungsberechtigungen festlegen [root@localhost ~]# systemctl stop nginx.service ##nginx herunterfahren [root@localhost ~]# systemctl start nginx.service ##Starten Sie nginx 2. Verbergen Sie die Versionsnummer, indem Sie die Konfigurationsdatei ändern Schritt 1: Überprüfen Sie die standardmäßige Nginx-Versionsnummer [root@localhost ~]# curl -I http://192.168.235.158 ##Überprüfen Sie die Versionsnummer HTTP/1.1 200 OK Server: nginx/1.12.0 ##Die sichtbare Versionsnummer ist 1.12.0 Datum: Mi., 13. Nov. 2019 08:32:59 GMT Inhaltstyp: text/html Inhaltslänge: 612 Letzte Änderung: Mittwoch, 6. November 2019, 01:53:19 GMT Verbindung: Keep-Alive ETag: "5dc2278f-264" Akzeptierte Bereiche: Bytes Schritt 2: Ändern Sie die Konfigurationsdatei nginx.conf [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf http { mime.types einschließen; Standardtyp Anwendung/Oktett-Stream; Server-Tokens aus; ##Fügen Sie die Option server_tokens zum Abschnitt http-Protokoll hinzu und setzen Sie den Wert auf off jpg Schritt 3: Überprüfen Sie, ob die Nginx-Versionsnummer ausgeblendet ist [root@localhost ~]# systemctl stop nginx.service [root@localhost ~]# systemctl start nginx.service [root@localhost ~]# curl -I http://192.168.235.158 HTTP/1.1 200 OK Server: nginx ##Die sichtbare Versionsnummer wurde ausgeblendet Datum: Mi, 13. Nov. 2019 09:18:00 GMT Inhaltstyp: text/html Inhaltslänge: 612 Letzte Änderung: Mittwoch, 6. November 2019, 01:53:19 GMT Verbindung: Keep-Alive ETag: "5dc2278f-264" Akzeptierte Bereiche: Bytes 3. Ändern Sie den Konfigurationsquellcode, um die Versionsnummer auszublenden Schritt 1: Ändern Sie die Konfigurationsdatei nginx.conf [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf ... Server-Tokens ein; ##Aus durch Ein ersetzen Schritt 2: Ändern Sie die Versionsinformationen in der Quellcodedatei nginx.h [root@localhost ~]# vim /opt/nginx-1.12.0/src/core/nginx.h #define NGINX_VERSION "1.1.1" ##Versionsinformationen auf 1.1.1 ändern Schritt 3: Nginx neu kompilieren [root@localhost ~]# cd /opt/nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./konfigurieren \ > --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx \ > --mit-http_stub_status_module [root@localhost nginx-1.12.0]# make && make install Schritt 4: Überprüfen Sie, ob die Nginx-Versionsnummer ausgeblendet ist [root@localhost nginx-1.12.0]# curl -I http://192.168.235.158 HTTP/1.1 200 OK Server: nginx/1.1.1 ##Die Versionsnummer wurde erfolgreich auf 1.1.1 geändert Datum: Mi., 13. Nov. 2019 10:20:23 GMT Inhaltstyp: text/html Inhaltslänge: 612 Letzte Änderung: Mittwoch, 6. November 2019, 01:53:19 GMT Verbindung: Keep-Alive ETag: "5dc2278f-264" Akzeptierte Bereiche: Bytes Beispieldemonstration der Cachezeit einer Webseite Schritt 1: Kopieren Sie das Bild in das Site-Verzeichnis [root@localhost nginx-1.12.0]# ls /abc Discuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gz spiel.jpg php-7.1.10.tar.bz2 mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz nginx-1.12.0.tar.gz [root@localhost nginx-1.12.0]# cp /abc/game.jpg /usr/local/nginx/html/ [root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/ [root@localhost html]# ls 50x.html spiel.jpg index.html Schritt 2: Ändern Sie die index.html-Seite von Nginx [root@localhost html]# vim index.html <h1>Willkommen bei nginx!</h1> <img src="spiel.jpg"/> ##Fügen Sie den Bildpfad unter dem h1-Tag hinzu Schritt 3: Nginx .conf-Datei ändern [root@localhost html]# vim /usr/local/nginx/conf/nginx.conf Benutzer nginx nginx; ##Geben Sie diesen Zeileneintrag separat ein, geben Sie den Benutzer nginx an, geben Sie die Gruppe nginx an Standort ~\.(gif|jepg|jpg|ico|bmp|png)$ { Stamm-HTML; läuft in 1 Tag ab; ##Die oben genannten Bildtypen werden einen Tag lang zwischengespeichert} [root@localhost html]# systemctl stop nginx.service [root@localhost html]# systemctl start nginx.service Schritt 4: Öffnen Sie zur Überprüfung eine virtuelle Win10-Maschine Installieren Sie die Paketerfassungssoftware fiddler.exe auf dem Client und öffnen Sie den Browser, um auf die Webseite 192.168.235.158 zuzugreifen. Zusammenfassen Oben habe ich Ihnen die versteckte Versionsnummer von Nginx und die Cache-Zeit von Webseiten vorgestellt. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Klassischer MySQL-High-Level-/Befehlszeilenvorgang (schnell) (empfohlen)
>>: Praktisches Beispiel für verschachtelte Routen im vue.js Router
usemap ist ein Attribut des <img>-Tags, das ...
Verwenden Sie Metadaten, um eine zeitgesteuerte A...
Lassen Sie uns zunächst darüber sprechen, warum w...
[Verwendung und Funktion des MySQL-Cursors] Beisp...
Standardmäßig generiert die MyISAM-Tabelle drei D...
Inhaltsverzeichnis 1. Maven-Abhängigkeit 2. Menüb...
Frontend css3.filter kann nicht nur den Graueffek...
Inhaltsverzeichnis 1. Herunterladen 2. Installier...
Inhaltsverzeichnis 1. React Hooks vs. reine Funkt...
Schauen wir uns zunächst einige einfache Daten an:...
Die SSH-Public-Key-Authentifizierung ist eine der...
Das Zielattribut eines Links bestimmt, wohin der L...
Werfen wir einen Blick auf das Problem des VScode...
Inhaltsverzeichnis Vorwort 1. Eine Zeichenfolge t...
Rendern Häufig verwendete Stile im Blog Garden /*...