Ottimizzare MySQL e Apache su cPanel/WHM
uesto processo di ottimizzazione esamineremo la configurazione principale di Apache e i moduli che fanno parte del core di Apache. Pensiamo che con le impostazioni corrette di Apache e MySQL sia possibile ottenere risultati eccellenti e il corretto livello di utilizzo delle risorse senza installare moduli proxy e cache di terze parti. Quindi iniziamo,
Apache e PHP
Nella prima fase eseguiamo Easy Apache e selezioniamo quanto segue:
* Apache versione 2.4+
* PHP versione 5.6+
* Al punto 5 “Elenco opzioni esaustive” selezionare
– Deflate
– Scade
– Lavoratore MPM
Al termine di Easy Apache, accedere a WHM »Configurazione del servizio» Configurazione di Apache »” Configurazione globale “e impostare i valori in base al livello di risorse disponibili sul server.
Direttiva Apache (da 2 GB di memoria o meno e fino a 12 GB + memoria) StartServers 4 8 16 MinSpareServers 4 8 16 MaxSpareServers 8 16 32 ServerLimit 128 256 512 MaxRequestWorkers 150 250 500 MaxConnectionsPerChild 1000 2500 5000 Keep-Alive On On On Keep-Alive Timeout 1 1 1 Max richieste di mantenimento 30 30 30 Timeout 60 60 60
Ora vai su WHM »Configurazione del servizio» Configurazione di Apache »Includi editor» “Pre VirtualHost Include” e consenti agli utenti una cache minima e una compressione dei dati per consentire al server di lavorare meno per le stesse cose incollando il codice sottostante nel campo di testo.
# Impostazioni controllo cache per cache di un'ora <FilesMatch ". (Ico | pdf | flv | jpg | jpeg | png | gif | js | css | swf) $"> Set di intestazioni Cache-Control "max-age = 3600, public" </FilesMatch> <FilesMatch ". (Xml | txt) $"> Set di intestazioni Cache-Control "max-age=3600, public, must-revalidate" </FilesMatch> <FilesMatch ". (Html | htm) $"> Set di intestazioni Cache-Control "max-age=3600, must-revalidate" </FilesMatch> # Mod Deflate esegue la compressione dei dati <IfModule mod_deflate.c> <FilesMatch ". (Js | css | html | php | xml | jpg | png | gif) $"> SetOutputFilter DEFLATE BrowserMatch ^ Mozilla/4 gzip-only-text /html BrowserMatch ^ Mozilla/4.0 [678] no-gzip BrowserMatch bMSIE no-gzip </FilesMatch> </IfModule>
Vai su WHM »Configurazione del servizio» “Editor di configurazione PHP” e imposta i parametri in base alle tue esigenze:
– memory_limit
– max_execution_time
– max_input_time
MySQL
Per MySQL devi aggiornare il file di configurazione che di solito in /etc/my.cnf
Migliore base di configurazione su 2 core e 4 GB di memoria MySQL 5.6 \ MariaDB 10:
[Mysqld] local-infile = 0 max_connections = 250 key_buffer = 64M myisam_sort_buffer_size = 64M join_buffer_size = 1M read_buffer_size = 1M sort_buffer_size = 2M max_heap_table_size = 16M table_cache = 5000 thread_cache_size = 286 interactive_timeout = 25 wait_timeout = 7000 connect_timeout = 15 max_allowed_packet = 16M max_connect_errors = 10 query_cache_limit = 2M query_cache_size = 32M query_cache_type = 1 tmp_table_size = 16M open_files_limit = 25280 [Mysqld_safe] [Mysqldump] Presto max_allowed_packet = 16M [Myisamchk] key_buffer = 64M sort_buffer = 64M read_buffer = 16M write_buffer = 16M [Mysqlhotcopy] interattivo-timeout
Migliore base di configurazione su 8 core e 16 GB + memoria (server condiviso) MySQL 5.6 \ MariaDB 10:
[Mysqld] local-infile = 0 max_connections = 600 max_user_connections = 1000 key_buffer_size = 512M myisam_sort_buffer_size = 64M read_buffer_size = 1M table_open_cache = 5000 thread_cache_size = 384 wait_timeout = 20 connect_timeout = 10 tmp_table_size = 256M max_heap_table_size = 128M max_allowed_packet = 64M net_buffer_length = 16384 max_connect_errors = 10 concurrent_insert = 2 read_rnd_buffer_size = 786432 bulk_insert_buffer_size = 8M query_cache_limit = 5M query_cache_size = 128M query_cache_type = 1 query_prealloc_size = 262144 query_alloc_block_size = 65535 action_alloc_block_size = 8192 action_prealloc_size = 4096 max_write_lock_count = 8 slow_query_log log-error external-bloccaggio = FALSE open_files_limit = 50000 [Mysqld_safe] [Mysqldump] Presto max_allowed_packet = 16M [Isamchk] key_buffer = 384M sort_buffer = 384M read_buffer = 256M write_buffer = 256M [Myisamchk] key_buffer = 384M sort_buffer = 384M read_buffer = 256M write_buffer = 256M #### Per configurazione della connessione #### sort_buffer_size = 1M join_buffer_size = 1M thread_stack = 192K
Ripara e ottimizza i database quindi riavvia MySQL:
mysqlcheck --check --auto-repair --all-database mysqlcheck --optimize --all-database /etc/init.d/mysql restart
Sicurezza e risorse limitate
Installa CSF (ConfigServer Security & Firewall) su: http://configserver.com/free/csf/install.txt
1) Vai su WHM »Plugin» ConfigServer Security & Firewall »“ Controlla la sicurezza del server ”e passa ciò che appare come richiesto per riparare:
2) Vai su WHM »Plugin» ConfigServer Security & Firewall »” Configurazione firewall “e imposta i parametri in base alle tue esigenze:
PT_USERMEM = 180
PT_USERTIME = 180
PT_USERKILL = 1
PT_USERKILL_ALERT = 1 (Opzionale)