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 eng initial Troubleshooting vun enger héijer Serverbelaaschtung empfeelen mir eng allgemeng Serverdiagnostik duerchzeféieren . Wann dëst net ausreechend ass, ass eng méi detailléiert Analyse vun de Ressourcen néideg. Als Hëllefsmëttel kann d'Iwwerpréiwung vun de Logbicher vum Linux- Server hëllefräich sinn, well do an de meeschte Fäll d'Ursaach vum Problem läit.

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 vun de Meta-Tags "noindex" an "nofollow" op Säiten benotzen, déi net indexéiert musse ginn. Déi zweet Léisung ass d' .htaccess- Datei, wou Entréen, déi spezifesch Sichmaschinne entspriechen, bäigefüügt musse ginn, zum Beispill fir sech viru 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 mussen Ännerunge fir aner Sichmaschinne gemaach ginn. Et sollt een drop hiweisen, datt d'Méiglechkeete vun .htaccess net nëmmen op d'Blockéierung vun der Indexéierung limitéiert sinn. Mir recommandéieren, sech am Artikel méi mat senge wichtegsten Eegeschafte vertraut ze maachen.

Benotzt Caching Astellungen

Falsch Caching-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 gemaach ginn . Am Fall vun Apache ass déi lescht Optioun virzezéien, fir Nginx déi éischt.

Op engem Apache Server musst Dir d' .htacess Datei opmaachen an de folgende Code aginn:

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

Dann aktivéiert de Modul Expires mam Kommando:

sudo a2enmod expires

Duerno starten de Webserver nei:

sudo service apache2 restart

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

ExpiresActive On

Op engem Nginx Server ass et genuch, de folgende Code an d'Konfiguratiounsdatei bäizefügen:

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 d' Direktiven "Allow" an "Deny" ëmgaange ginn.

Benotzt Datekompressioun

D'Aktivéierung vun der Datenkompressioun mat Gzip op Apache- an Nginx-Webserver hëlleft d'Quantitéit un Daten ze reduzéieren, déi tëscht dem Server an dem Client iwwerdroe ginn, wat d'Performance verbessert an d'Ladezäit vun de Websäiten verkierzt.

Fir Gzip op Apache z'aktivéieren , musst Dir de Modul mod_deflate aktivéieren:

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 geschitt d'Konfiguratioun am http- Block vun der Konfiguratiounsdatei. De folgende Code muss bäigefüügt 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 bei Apache ginn hei d'Kompressiounsparameter fir verschidden Zorte vu Dateien festgeluecht. Nodeems Ännerungen un engem vun de Webservere gemaach goufen, ass e Service nei geluet néideg:

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 Hëllef vun engem CDN (Content Delivery Network) . En CDN kann als Tëschemann tëscht Ärem Webserver a Benotzer déngen, andeems en den Traffic verdeelt an Inhalt cache späichert fir den Impakt vun engem DDoS-Attack ze reduzéieren. CDNe kënnen och agebaute DDoS-Schutzmechanismen hunn, dorënner Lastverdeelung a Trafficfilterung.

Konfiguratioun vu Firewalls an Intrusiounsdetektiounssystemer (IDS/IPS) . Firewalls kënne konfiguréiert ginn, fir den Traffic op Basis vu verschiddene Critèren ze filteren, wéi IP-Adressen a Ports. IDS/IPS kënnen anormal Trafficverhalen erkennen a verdächteg Verbindungen blockéieren. Dës Tools kënnen effektiv sinn, fir potenziell béiswëllegen Traffic ze verfollegen a 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 de Modul mod_evasive . Fir dëst ze maachen, decommentéiert oder füügt déi folgend Zeil an der httpd.conf oder apache2.conf Konfiguratiounsdatei bäi:

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 de Modul mod_ratelimit :

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 wéi déi vun Apache . An der 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

D'Optimiséierung vun MySQL-Datebankufroen op engem Webserver kann op verschidde Weeër gemaach ginn, an eng dovun ass déi richteg Konfiguratioun vun der Konfiguratiounsdatei. Typesch heescht dës Datei my.cnf oder my.ini a läit am Verzeichnis /etc/ oder /etc/mysql/ . Dir musst se opmaachen an déi folgend Ännerunge 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 Sektioun wäerte mir ënnersichen, wéi mir feststellen kënnen, datt de Mailserver ënner héijer Belaaschtung steet a wéi eng Schrëtt mir maache kënnen, fir säi Betrib ze optimiséieren, dorënner d'Kontroll vun der Message Queue an d'Konfiguratioun vun de Serverparameteren. Fänkt mat der Kontroll vun der Message Queue un. Den Utility mailq kann dobäi hëllefen. Fir en z'aktivéieren, gitt de passenden Kommando am Terminal an:

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 Certbot: Installéiere vum Let's Encrypt Certificate
Nächsten Artikel ❯ Server Luede Diagnostik

Frot eis iwwer VPS

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