Kaʻikepili Nā ʻōlelo kuhikuhi maʻalahi e hana me ka lawelawe Profitserver
Main Kaʻikepili E hoemi ana i ka ukana kikowaena

E hoemi ana i ka ukana kikowaena


Ma kēia ʻatikala, e ʻimi mākou i ke kumu o ka hoʻonui ʻia ʻana o ka ukana server a kūkākūkā i nā ʻano like ʻole e koho ai i nā kaʻina hana kiʻekiʻe. E hāʻawi ʻia ka manaʻo kūikawā i ka code optimization ma Apache / Nginx a me MySQL, e kamaʻilio mākou e pili ana i ka caching ma ke ʻano he mea kōkua, a noʻonoʻo pū kekahi i nā mea hoʻoweliweli o waho, e like me ka hoʻouka ʻana o DDOS, a me nā ala e pale ai iā lākou.

No ke aha i hoʻouka ʻia ai ke kikowaena

Ma mua o ka hoʻomaka ʻana i ka server optimization, pono e hana i ka nānā pono ʻana i ka ukana o kēia manawa i nā kumuwaiwai. Hoʻopili kēia i ke ana ʻana i ka ukana CPU, ka hoʻohana ʻana i ka RAM, ka hana pūnaewele, a me nā ʻāpana koʻikoʻi ʻē aʻe. ʻO ka hoʻomaopopo ʻana i ka dinamika a me nā haʻahaʻa kiʻekiʻe e hiki ai ke ʻike i nā bottlenecks a me ka hoʻokaʻawale ʻana i nā kumuwaiwai, no laila e hoʻonui ai i ka paʻa a me ka hana o ka ʻōnaehana kikowaena.

No ka hoʻoponopono mua ʻana i ka hoʻouka kikowaena kiʻekiʻe, paipai mākou e hana i kahi nā diagnostics kikowaena kikowaena. Inā lawa ʻole kēia, ʻoi aku ka kikoʻī kālailai waiwai pono. Ma ke ʻano he mea kōkua, e ʻimi ana i ka nā lāʻau o ka Linux Hiki i ke kikowaena ke kōkua, no ka mea, ma laila ke kumu o ka pilikia i ka hapanui o nā hihia.

Hoʻonui i ka Apache / Nginx Server

Hoʻonui ʻia ka ukana kikowaena ma muli o ke kuhikuhi ʻana

Hiki ke hoʻonui ʻia ka ukana ma muli o ka helu ʻana i ka kikowaena, no ka laʻana, ke nānā ʻia nā ʻenekini huli i kahi helu nui o nā ʻaoʻao ma kāu pūnaewele. Hiki i kēia ke alakaʻi i ka hoʻohana nui ʻana i nā kumuwaiwai kikowaena a, no laila, hoʻolohi i ka hana o ka pūnaewele. He mea maʻalahi ka ʻike ʻana i ke kumu; pono ʻoe e wehe i ka faila aia ma:

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

Ke kuhikuhi ʻia e nā ʻenekini huli, e ʻike ka mea hoʻohana i nā mea hoʻokomo o kēia ʻano:

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)"

Ma ke ʻano he hopena mua e hōʻemi ai i ka ukana, hiki iā ʻoe ke hoʻohana i ka hoʻonohonoho ʻana o nā meta tag "noindex" a "nofollow" ma nā ʻaoʻao ʻaʻole pono e kuhikuhi ʻia. ʻO ka lua o ka hoʻonā ka .htaccess file, kahi e hoʻohui ʻia ai nā mea e pili ana i nā ʻenekini hulina, no ka laʻana, e hūnā mai Yandex a me Google:

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

Pēlā nō, pono e hoʻoponopono ʻia no nā ʻenekini huli ʻē aʻe. Pono e hoʻomaopopo ʻia ʻaʻole i kaupalena ʻia nā mana o .htaccess i ka pale wale ʻana i ka indexing. Paipai mākou e kamaʻāina hou i kāna mau hiʻohiʻona nui i ka Haawina.

Ke hoʻohana nei i nā ʻōkuhi Caching

Hiki ke alakaʻi i nā hoʻonohonoho caching hewa ma ke kikowaena i ka haʻahaʻa kiʻekiʻe. No ka hoʻonui ʻana i kēia ʻāpana, pono e hoʻololi ʻia i nā faila hoʻonohonoho a i ʻole .htaccess. I ka hihia o Apache, ʻoi aku ka maikaʻi o ka koho hope, no Nginx - ka mea mua.

Ma ka lā Apache server, pono ʻoe e wehe i ka .htacess faila a hoʻokomo i kēia code:

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

A laila, hiki i ka Hopi module me ke kauoha:

sudo a2enmod expires

Ma hope o kēlā, e hoʻomaka hou i ka pūnaewele pūnaewele:

sudo service apache2 restart

A ho'ā i ka module ma ke kuhikuhi ʻana:

ExpiresActive On

i ka Nginx server, ua lawa ia e hoʻohui i kēia code i ka faila hoʻonohonoho:

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

A e hana i kahi hoʻouka lawelawe:

sudo service nginx restart

E hoʻomaopopo me kēia mau hoʻonohonoho, ʻo ka ae aku a ʻO Deny e kāpae ʻia nā kuhikuhi.

Ke hoʻohana nei i ka ʻikepili Compression

E ho'ā ana i ka hoʻopili ʻikepili me ka hoʻohana ʻana ʻO Gzip ma Apache a me Nginx nā kikowaena pūnaewele e kōkua i ka hōʻemi ʻana i ka nui o ka ʻikepili i hoʻouna ʻia ma waena o ke kikowaena a me ka mea kūʻai aku, e hoʻomaikaʻi ana i ka hana a hōʻemi i ka manawa hoʻouka ʻaoʻao pūnaewele.

E hiki ai ʻO Gzip on Apache, pono e ho'ā i ka mod_deflate module:

sudo a2enmod deflate

A laila, e hoʻomaka hou i ka pūnaewele pūnaewele:

sudo service apache2 restart

A ʻo ka hope, hoʻohui i kēia poloka i ka faila hoʻonohonoho a i ʻole .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>

Hiki i kēia hoʻonohonoho ke kaomi ʻana i kekahi mau faila a hoʻopau iā ia no nā kiʻi.

Ma ka hihia o Nginx, hiki ke hoʻonohonoho i ka http poloka o ka waihona hoʻonohonoho. Pono e hoʻohui i kēia code:

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;

E like me Apache, ma ʻaneʻi ua hoʻonohonoho ʻia nā ʻāpana kaomi no kekahi mau ʻano faila. Ma hope o ka hoʻololi ʻana i kekahi o nā kikowaena pūnaewele, pono e hoʻouka hou i ka lawelawe:

sudo service apache2 restart

Or

sudo service nginx restart

Hoʻouka DDOS ma ke kikowaena

Hiki ke loaʻa ka ukana kikowaena kiʻekiʻe ma muli o kahi hoʻouka kaua DDoS. ʻO ka ʻike ʻana i ka hiki ʻana mai o kahi hoʻouka kaua DDoS hiki ke hana ʻia ma o ka nānā ʻana i ka piʻi koke ʻana o ke kaʻa, nā noi maʻamau, a me ka hāʻule ʻana o ka hana server. ʻO ka nānā ʻana i nā lāʻau no nā noi pinepine mai hoʻokahi IP address a i ʻole ka nānā ʻana i ke awa hiki ke hōʻike i kahi hoʻouka kaua DDoS. Nui nā hana palekana, akā e kūkākūkā wale mākou i nā kumu.

Ke hoʻohana nei i kahi CDN (Content Delivery Network). Hiki i kahi CDN ke lawelawe ma ke ʻano he kikowaena ma waena o kāu kikowaena pūnaewele a me nā mea hoʻohana, e puʻunaue ana i nā kaʻa a me ka hoʻopaʻa ʻana i nā ʻike e hoʻēmi i ka hopena o kahi hoʻouka kaua DDoS. Hiki i nā CDN ke loaʻa i nā mīkini pale DDoS i kūkulu ʻia, me ka hāʻawi ʻana i ka ukana a me ke kānana kaʻa.

Ka hoʻonohonoho ʻana i nā pā ahi a me nā ʻōnaehana ʻike intrusion (IDS/IPS). Hiki ke hoʻonohonoho ʻia nā pā ahi no ka kānana ʻana i nā kaʻa ma muli o nā koina like ʻole, e like me nā helu IP a me nā awa. Hiki i ka IDS/IPS ke ʻike i ke ʻano o ke kaʻa kaʻa like ʻole a hoʻopaʻa i nā pilina kānalua. Hiki i kēia mau mea hana ke hoʻokō pono i ka nānā ʻana a me ka pale ʻana i nā kaʻa hana ʻino.

Ke hoʻonohonoho nei i nā kikowaena pūnaewele Apache a me Nginx e hoʻohaʻahaʻa i ka hopena o nā hōʻeha DDoS.

Ma ke ʻano he hopena no Apache, hiki iā mākou ke hana i ka mod_evasive module. No ka hana ʻana i kēia, wehe ʻole a hoʻohui i kēia laina ma ka httpd.conf or apache2.conf hoʻonohonoho hoʻonohonoho:

LoadModule evasive20_module modules/mod_evasive.so

Ma ka waihona like, pono ʻoe e hoʻohui i kahi poloka hoʻonohonoho:

<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>

Pēlā nō, hoʻoikaika mākou i ka mod_ratelimit module:

LoadModule ratelimit_module modules/mod_ratelimit.so

A hoʻohui i ka hoʻonohonoho:

<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>

ʻO ka hoʻonohonoho no Nginx like like Apache. I ka nginx.conf configuration file, pono e hoʻohana i kēia mau kuhikuhi:

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;

        ...
    }
}

Ma hope o ka hoʻololi ʻana i kēlā me kēia lawelawe, pono lākou e hoʻouka hou:

sudo systemctl restart apache2

A i'ole:

sudo systemctl restart nginx

Hāʻawi kēia mau hiʻohiʻona i kahi hoʻonohonoho kumu, hiki ke hoʻololi hou ʻia ma muli o nā koi kikoʻī a me ke ʻano o nā hoʻouka.

Hoʻonui i nā nīnau nīnau MySQL

Hiki ke hoʻokō ʻia nā nīnau ʻikepili MySQL ma kahi kikowaena pūnaewele ma nā ʻano like ʻole, a ʻo kekahi o lākou ka hoʻonohonoho kūpono o ka faila hoʻonohonoho. ʻO ka maʻamau, kapa ʻia kēia faila my.cnf or my.ini a aia ma ka / a pela aku / or /etc/mysql/ papa kuhikuhi. Pono ʻoe e wehe a hana i kēia mau hoʻololi:

[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

E noʻonoʻo pū kākou i nā manaʻo hou aʻe e hiki ke hoʻomaʻamaʻa i ka pilina me ka waihona kikowaena:

  1. E hoʻohana i ka KAHAIOLA kauoha ma mua o kahi nīnau SQL e nānā i kāna hoʻokō. Hāʻawi kēia iā ʻoe e kiʻi i kahi hoʻolālā hoʻokō no ka nīnau a hoʻoholo i nā ʻōlelo kuhikuhi i hoʻohana ʻia, nā papa i nānā ʻia, etc.
  2. Hiki i nā papa kuhikuhi i ka huli ʻikepili ke hoʻoikaika maikaʻi loa i ka hana hulina. E nānā i nā kolamu i hoʻohana pinepine ʻia i loko kahi or hui nā kūlana.
  3. Hōʻalo ka hoʻohana ʻana KOHO *. E koho i kēlā mau kolamu i pono maoli no kāu nīnau, ma kahi o ke koho ʻana i nā kolamu a pau i ka papaʻaina.
  4. Hōʻalo i ka hoʻohana ʻana i nā hana ma kahi kūlana. Ke hoʻohana nei i nā hana (e like me LOWA, LUNA, HEMA, AKAUi kahi Hiki i nā kūlana ke hana i nā kuhikuhi i mea ʻole. E ho'āʻo e pale i kā lākou hoʻohana pololei i nā kūlana.
  5. hoʻohana INNER JOIN inā hiki, no ka mea, ʻoi aku ka maikaʻi. Eia kekahi, e hōʻoia i nā kolamu kūpono no ka hui ʻana he mau kuhikuhi.
  6. hoʻohana kali e kaupalena i ka helu o nā lālani i hoʻihoʻi ʻia inā pono ʻoe e loaʻa i kahi helu o nā hopena.
  7. E noʻonoʻo i ka hoʻopaʻa ʻana i nā hopena hulina, ʻoi aku ka nui o ka loli ʻana, e hōʻemi i ka ukana kikowaena.

Hoʻokumu ka Luna Leka i ka haʻahaʻa kiʻekiʻe ma ke kikowaena

Ma kēia ʻāpana, e ʻimi mākou pehea e hoʻoholo ai i ka loaʻa ʻana o ke kikowaena leka uila i ka haʻahaʻa kiʻekiʻe a me nā ʻanuʻu e hiki ke hana e hoʻokō i kāna hana, me ka nānā ʻana i ka queue me ka hoʻonohonoho ʻana i nā ʻāpana kikowaena. E hoʻomaka me ka nānā ʻana i ka pila memo. ʻO ka mailq hiki ke kōkua i ka pono me kēia, e hoʻāla iā ia, e hoʻokomo i ke kauoha pili i ka terminal:

mailq

E hōʻike kēia i kahi papa inoa o nā memo ma ka pila, inā he. E hōʻike ʻia kēlā me kēia memo me kāna ʻike kūikawā a me ka ʻike e pili ana i ke kūlana hoʻouna. Hiki ke loaʻa ka hopena like ma ka nānā ʻana i nā moʻolelo o ka mea kūʻai leka uila.

I ka hapanui o nā hihia, loaʻa ka haʻahaʻa kiʻekiʻe i ka wā i hoʻopaʻa ʻia ka server i ka wā e hoʻomaka ai ka hoʻouna ʻana i ka spam. Eia naʻe, inā ma hope o ka nānā ʻana ua hilinaʻi ka luna hoʻomalu ʻaʻole i hoʻouka ʻia ke kikowaena mai waho a ʻaʻole haʻalele nā ​​mea hoʻohana i ka spam, ʻo ia ka manawa e neʻe ai i ka optimizing ka leka uila. Eia nā ʻanuʻu e kōkua ai:

  1. E hōʻoia i ka hoʻonohonoho pono ʻana o nā moʻolelo DNS o kāu kikowaena, me SPF, Dokim, a DMARC nā moʻolelo e hoʻomaikaʻi i ka lawe ʻana i ka leka uila a pale aku i ka spam. Hiki ke loaʻa ka hoʻonohonoho kūpono o nā ʻāpana ma ka ʻatikala ma hōʻike diagnostics server mail.
  2. E nānā i nā hoʻonohonoho pūnaewele, me ka hoʻonohonoho ʻana i ka pā ahi a me nā lula hoʻokele, e pale i nā poloka a me ka wikiwiki o ka lawe ʻana i ka leka uila.
  3. E hoʻopaʻa i nā ʻāpana pila e like me ka ukana kikowaena. Hiki i kēia ke hoʻonohonoho i ka nui o ka pila a me nā manawa pau.
  4. E noʻonoʻo i nā hoʻonā a mākou i kūkākūkā ai ma kēia ʻatikala ma mua. E hoʻopololei i kēlā me kēia manawa i ka waihona kikowaena leka uila no ka hoʻomaikaʻi ʻana i ka hana, e hoʻohana i nā mīkini caching e wikiwiki i ka ʻimi ʻikepili a me ka hana ʻana, e like me nā nīnau DNS.
  5. Inā loaʻa mau ke kikowaena leka uila i ka haʻahaʻa kiʻekiʻe, e noʻonoʻo i nā koho scaling, e like me ka hoʻohana ʻana i kahi pūʻulu o nā kikowaena leka uila a i ʻole nā ​​hoʻonā ao.

Panina

ʻO ka hoʻonui ʻia ʻana o ka ukana e pili pono ana i ka wikiwiki o ka hoʻouka ʻana i ka pūnaewele, i ka hopena i ka ʻike mea hoʻohana a me ka kaulana i nā ʻenekini huli. No laila, ʻo ka hoʻokele maikaʻi ʻana i kēia ukana he kuleana koʻikoʻi ia i ka hōʻoia ʻana i ka hana mau o ka waiwai a me ka hoʻonui ʻana i kona hiki i nā malihini.

❮ ʻatikala mua ʻIkepili Hoʻouka Server
ʻatikala aʻe ❯ Certbot: Hoʻokomo ʻana iā Let's Encrypt Certificate

E nīnau iā mākou e pili ana iā VPS

Mākaukau mau mākou e pane i kāu mau nīnau i kēlā me kēia manawa o ke ao a i ka pō.