Knowledgebase Einfach Instruktioune fir mam Profitserver Service ze schaffen
Main Knowledgebase Reduzéiert Serverbelaaschtung

Reduzéiert Serverbelaaschtung


An dësem Artikel wäerte mir ënnergoen firwat eng erhéicht Serverbelaaschtung geschitt a verschidde Weeër diskutéiere fir High-load Prozesser ze optimiséieren. Besonnesch Opmierksamkeet gëtt op d'Codeoptiméierung an Apache / Nginx a MySQL gegeben, mir schwätzen iwwer Caching als Hëllefsinstrument, a berücksichtegen och méiglech extern Bedrohungen, wéi DDOS Attacken, a Weeër fir se ze verhënneren.

Firwat Server Luede geschitt

Ier Dir op d'Serveroptimiséierung weidergeet, ass et néideg eng grëndlech Analyse vun der aktueller Belaaschtung op Ressourcen ze maachen. Dëst beinhalt d'Messung vun der CPU Belaaschtung, RAM Notzung, Netzwierkaktivitéit an aner Schlësselparameter. D'Dynamik an d'Spëtzelaste verstoen erlaabt d'Identifikatioun vun Flaschenhalsen an d'Optimisatioun vun der Ressourceallokatioun, sou datt d'Stabilitéit an d'Performance vun der Serverinfrastruktur erhéicht ginn.

Fir initial Troubleshooting vun héijer Serverbelaaschtung empfeelen mir Iech eng allgemeng Server Diagnostik. Wann dëst net genuch ass, eng méi detailléiert Analyse vun Ressourcen ass néideg. Als Hëllefsinstrument, Entdeckung vum Logbicher vum Linux Server kann hëllefräich sinn, well dëst ass wou d'Quell vum Problem an de meeschte Fäll fonnt gëtt.

Apache / Nginx Server optimiséieren

Erhéicht Serverbelaaschtung Wéinst Indexéierung

Eng Erhéijung vun der Belaaschtung duerch d'Indexéiere vum Server kann zum Beispill optrieden wann Sichmotoren eng grouss Zuel vu Säiten op Ärem Site scannen. Dëst kann zu enger verstäerkter Notzung vu Serverressourcen féieren an doduerch d'Performance vum Site verlangsamen. D'Ursaach z'identifizéieren ass relativ einfach; Dir musst d'Datei opmaachen op:

/var/www/httpd-logs/sitename.access.log

Wann indexéiert vu Sichmotoren, gesäit de Benotzer Entréen vun der folgender Natur:

11.22.33.44 - - [Date and Time] "GET /your-page-path HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Als éischt Léisung fir d'Laascht ze reduzéieren, kënnt Dir d'Astellung vu Meta Tags benotzen "noindex" an "nofollow" op Säiten déi net indexéiert musse ginn. Déi zweet Léisung ass de .htaccess Datei, wou Entréen entspriechend spezifesch Sichmotoren musse bäigefüügt ginn, zum Beispill fir vu Yandex a Google ze verstoppen:

SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot

Ähnlech musse Ännerunge fir aner Sichmotoren gemaach ginn. Et sollt bemierkt datt d'Fähigkeiten vum .htaccess net nëmme limitéiert sinn fir Indexéierung ze blockéieren. Mir recommandéieren méi Gewunnecht mat sengen Haaptmerkmale am Manifestatioun.

Benotzt Caching Astellungen

Falsch Cache-Astellungen um Server kënnen och zu enger héijer Belaaschtung féieren. Fir dëse Parameter ze optimiséieren, mussen entspriechend Ännerungen an de Konfiguratiounsdateien oder .htaccess. Am Fall vun Apache ass déi lescht Optioun léiwer, fir Nginx - déi fréier.

Op en Apache- Server, Dir musst de .htacess Datei an setzt de folgende Code an:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Dann aktivéiert d' Verflaacht of Modul mat dem Kommando:

sudo a2enmod expires

Duerno starten de Webserver nei:

sudo service apache2 restart

An aktivéiert de Modul andeems Dir spezifizéiert:

ExpiresActive On

Mir hunn Nginx Server, ass et genuch fir de folgende Code an d'Konfiguratiounsdatei ze addéieren:

location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ {
root /var/www/yoursite.com;
}

A maacht e Service Reload:

sudo service nginx restart

Bedenkt datt mat dësen Astellungen, der erlaabt an Verformt Direktiven ëmgoen.

Benotzt Datekompressioun

Datekompressioun aktivéieren mat Gzip op Apache an Nginx Webserver hëlleft d'Quantitéit vun Daten, déi tëscht dem Server an dem Client iwwerdroe ginn, ze reduzéieren, wat d'Performance verbessert an d'Websäit Luedezäit reduzéiert.

Fir z'aktivéieren Gzip on Apache-, Dir musst der aktivéieren mod_deflate Modul:

sudo a2enmod deflate

Da starten de Webserver nei:

sudo service apache2 restart

A schliisslech füügt de folgende Block an d'Konfiguratiounsdatei oder .htaccess:

<IfModule mod_deflate.c>
# Configure compression for specified file types
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json

# If the browser matches the specified pattern, apply compression only to text/html files
BrowserMatch ^Mozilla/4 gzip-only-text/html

# If the browser matches the specified version patterns of Mozilla 4.0.6, 4.0.7, 4.0.8, disable compression
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# If the browser is MSIE (Internet Explorer), disable compression for all files except text/html
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# If the request contains the specified pattern (extensions of image files), disable compression
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
</IfModule>

Dës Konfiguratioun erméiglecht d'Kompressioun fir verschidden Zorte vu Dateien an deaktivéiert se fir Biller.

Am Fall vun Nginx, Konfiguratioun geschitt an der http Block vun der Konfiguratiounsdatei. De folgende Code muss derbäigesat ginn:

gzip on;
gzip_disable "msie6";

# Adds the Vary header, indicating that the response may change depending on the Accept-Encoding header value
gzip_vary on;

# Enables compression for any proxy servers
gzip_proxied any;

# Sets the compression level. A value of 6 provides a good balance between compression efficiency and resource use
gzip_comp_level 6;

# Sets the size of the buffer for compressed data (16 buffers of 8 kilobytes each)
gzip_buffers 16 8k;

# Specifies that data compression should be used only for HTTP version 1.1 and higher
gzip_http_version 1.1;

# Sets the file types that can be compressed
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Ähnlech wéi Apache-, Hei sinn d'Kompressiounsparameter fir verschidden Zorte vu Dateien agestallt. Nodeems Dir Ännerunge vun engem vun de Webserver gemaach hutt, ass e Service Reload erfuerderlech:

sudo service apache2 restart

Or

sudo service nginx restart

DDOS Attack op de Server

Héich Serverbelaaschtung kann als Resultat vun engem DDoS Attack optrieden. D'Präsenz vun engem DDoS-Attack z'identifizéieren kann duerch Iwwerwaachung vun enger plötzlecher Erhéijung vum Traffic, anormalen Ufroen a Serverleistungsfälle gemaach ginn. Iwwerpréiwung vu Logbicher fir widderholl Ufroe vun enger IP Adress oder Port Scannen kann och e méiglechen DDoS Attack uginn. Et gi vill Schutzmoossnamen, mä mir wäerten nëmmen d'Basis diskutéieren.

Mat engem CDN (Content Delivery Network). En CDN kann als Tëschestatioun tëscht Ärem Webserver a Benotzer déngen, Traffic verdeelen an Inhalter cache fir den Impakt vun engem DDoS Attack ze reduzéieren. CDNs kënnen och agebaute DDoS Schutzmechanismen hunn, dorënner Lastverdeelung a Verkéiersfilter.

Konfiguratioun vu Firewalls an Intrusiounserkennungssystemer (IDS/IPS). Firewalls kënnen konfiguréiert ginn fir den Traffic ze filteren op Basis vu verschiddene Critèren, wéi IP Adressen a Ports. IDS / IPS kënnen anormal Verkéiersverhalen entdecken a verdächteg Verbindunge blockéieren. Dës Tools kënnen effektiv sinn fir potenziell béiswëlleg Traffic ze verfolgen an ze blockéieren.

Apache an Nginx Webserver konfiguréieren fir den Impakt vun DDoS Attacken ze reduzéieren.

Als Léisung fir Apache aktivéiere mir den mod_evasive Modul. Fir dëst ze maachen, decommentéiert oder füügt déi folgend Zeil an der httpd.conf or apache2.conf Configuratiounsdatei:

LoadModule evasive20_module modules/mod_evasive.so

An der selwechter Datei musst Dir en Astellungsblock addéieren:

<IfModule mod_evasive20.c>
# Hash table size for storing request information
DOSHashTableSize 3097

# Number of requests to one page before activating protection
DOSPageCount 2
DOSPageInterval 1

# Number of requests to all pages before activating protection
DOSSiteCount 50
DOSSiteInterval 1

# Blocking period in seconds for IP addresses
DOSBlockingPeriod 10
</IfModule>

Ähnlech aktivéiere mir den mod_ratelimit Modul:

LoadModule ratelimit_module modules/mod_ratelimit.so

A füügt d'Konfiguratioun un:

<IfModule mod_ratelimit.c>
# Setting the output filter for rate limiting (Rate Limit)
SetOutputFilter RATE_LIMIT

# Beginning of the settings block for the location "/login"
<Location "/login">

# Setting the environment variable rate-limit with a value of 1
SetEnv rate-limit 1

# Ending of the settings block for the location "/login"
</Location>
</IfModule>

D'Konfiguratioun fir Nginx ass ähnlech Apache-. An nginx.conf Konfiguratiounsdatei mussen déi folgend Direktiven benotzt ginn:

http {
...
# Defining a zone for connection limits
limit_conn_zone $binary_remote_addr zone=addr:10m;

# Defining a zone for request limits
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

server {
        ...
        # Configuring connection limits
        limit_conn addr 10;

        # Configuring request limits
        limit_req zone=req_zone burst=5;

        ...
    }
}

Nodeems Dir Ännerunge fir jidderee vun de Servicer gemaach hutt, musse se nei gelueden ginn:

sudo systemctl restart apache2

Oder:

sudo systemctl restart nginx

Dës Beispiller bidden nëmmen eng Basiskonfiguratioun, déi ofhängeg vu spezifesche Viraussetzungen an der Natur vun den Attacke weider adaptéiert ka ginn.

MySQL Queries optimiséieren

Optimisatioun vun MySQL Datebank Ufroen op engem Webserver kann op verschidde Weeër erreecht ginn, an ee vun hinnen ass déi richteg Konfiguratioun vun der Konfiguratiounsdatei. Normalerweis gëtt dës Datei genannt meng. cnf or meng.ini a läit am / etc / or /etc/mysql/ Verzeechnes. Dir musst et opmaachen an déi folgend Ännerungen maachen:

[mysqld]
# Location of the file for recording slow queries. Be sure to replace it with your path
log-slow-queries = /var/log/mariadb/slow_queries.log

# Threshold time for considering slow queries (in seconds)
long_query_time = 5

# Enabling recording of queries that do not use indexes
log-queries-not-using-indexes = 1

# Disabling query caching
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 1M

# Size of temporary tables
tmp_table_size = 16M
max_heap_table_size = 16M

# Size of the thread cache
thread_cache_size = 16

# Disabling name resolving
skip-name-resolve = 1

# Size of the InnoDB buffer pool. Set to 50-70% of available RAM
innodb_buffer_pool_size = 800M

# Size of the InnoDB log file
innodb_log_file_size = 200M

Loosst eis och zousätzlech Empfehlungen betruechten déi d'Interaktioun mat der Serverdatenbank erliichteren kënnen:

  1. benotzt Erklären Kommando virun enger SQL Ufro fir seng Ausféierung ze analyséieren. Dëst erlaabt Iech en Ausféierungsplang fir d'Ufro ze kréien an ze bestëmmen wéi eng Indizes benotzt ginn, wéi eng Tabelle gescannt ginn, etc.
  2. Indexen beschleunegen Daten Sich, sou datt richteg entworf Indexen d'Ufroleistung wesentlech kënne verbesseren. Opgepasst op Spalten déi dacks benotzt ginn WOU or JOIN Konditiounen.
  3. Vermeit Benotzung SELECHT *. Gitt nëmmen déi Kolonnen un, déi wierklech néideg sinn fir Är Ufro, anstatt all Kolonnen an enger Tabell ze wielen.
  4. Vermeiden d'Benotzung vu Funktiounen an WOU Konditiounen. Benotzt Funktiounen (wéi z NËMMEN, IWWERT, LÉNKS, RIETS) WOU Konditioune kënnen Indexen nëtzlos maachen. Probéiert hir direkt Notzung ënner Bedingungen ze vermeiden.
  5. benotzt zentrale JOIN wou et méiglech ass, well et normalerweis méi efficace ass. Vergewëssert Iech och datt déi entspriechend Saile fir Bäiträg Indexen hunn.
  6. benotzt LIMITE fir d'Zuel vun zréckgeschéckten Zeilen ze beschränken wann Dir nëmmen eng gewëssen Zuel vu Resultater braucht.
  7. Bedenkt d'Caching vu Query Resultater, besonnesch wa se seelen änneren, fir d'Serverbelaaschtung ze reduzéieren.

De Mail Server erstellt héich Belaaschtung um Server

An dëser Rubrik wäerte mir entdecken wéi Dir feststellt datt de Mailserver héich Belaaschtung erliewt a wéi eng Schrëtt kënne gemaach ginn fir seng Operatioun ze optimiséieren, inklusiv d'Kontroll vun der Messageschlaang an d'Konfiguratioun vun de Serverparameter. Start mat der Iwwerpréiwung vun der Message Schlaang. Déi mailq Utility kann mat dësem hëllefen, fir et ze aktivéieren, gitt de entspriechende Kommando am Terminal:

mailq

Dëst wäert eng Lëscht vun Messagen an der Schlaang weisen, wann all. All Message gëtt mat sengem eenzegaartegen Identifizéierer an Informatioun iwwer de Sendestatus ugewisen. En ähnlecht Resultat kann kritt ginn andeems Dir d'Mail Client Logbicher iwwerpréift.

An deene meeschte Fäll geschitt eng héich Belaaschtung am Fall vu Serverkompromëss wann et ufänkt Spam ze schécken. Wéi och ëmmer, wann no der Iwwerpréiwung den Administrateur zouversiichtlech ass datt de Server net vu baussen attackéiert gouf an d'Benotzer net Spam vernoléissegen, ass et Zäit fir de Mailserver ze optimiséieren. Hei sinn d'Schrëtt déi hëllefen:

  1. Vergewëssert Iech datt d'DNS-Records vun Ärem Domain korrekt konfiguréiert sinn, inklusiv SPF, DKIM, an DMARC records fir d'Mail Liwwerung ze verbesseren a géint Spam ze schützen. Déi richteg Konfiguratioun vu Parameteren fannt Dir am Artikel iwwer Mail Server Diagnostik.
  2. Kontrolléiert d'Netzwierk Astellungen, dorënner Firewall Konfiguratioun a Routing Regelen, fir Spären ze vermeiden an d'Mail Liwwerung ze beschleunegen.
  3. Configuréieren Message Schlaang Parameteren no Server Belaaschtung. Dëst kann d'Astellung vun der maximaler Schlaanggréisst an Timeouts enthalen.
  4. Betruecht d'Léisungen, déi mir virdru an dësem Artikel diskutéiert hunn. Periodesch optiméiert d'Mail-Server-Datebank fir d'Performance ze verbesseren, benotzt Caching-Mechanismen fir Datensich a Veraarbechtung ze beschleunegen, sou wéi DNS Ufroen.
  5. Wann de Mailserver nach ëmmer reegelméisseg héich Belaaschtung begéint, betruecht d'Skaléierungsoptiounen, wéi zum Beispill e Cluster vu Mailserveren oder Cloud-Léisungen ze benotzen.

Conclusioun

Erhéicht Serverbelaaschtung beaflosst direkt Websäit Luedegeschwindegkeet, schlussendlech beaflosst d'Benotzererfarung an de Ruff an de Sichmotoren. Also, effektiv d'Gestioun vun dëser Laascht spillt eng Schlësselroll fir eng kontinuéierlech Funktionalitéit vun der Ressource ze garantéieren an hir Accessibilitéit fir Besucher ze erhéijen.

❮ Virdrun Artikel Server Luede Diagnostik
Nächsten Artikel ❯ Certbot: Installéiere vum Let's Encrypt Certificate

Frot eis iwwer VPS

Mir sinn ëmmer prett Är Froen zu all Moment vum Dag oder Nuecht ze beäntweren.