Merhabalar, Bu yazıda birçok kişinin Server üzerinde yaşadığı yavaşlık ve basit güvenlik ayarlarından muzdarip olduğunu ve bu sorunu nasıl çözeceğine dair yazı yazmak geldi içimde.
Öncelikle yazı içindeki ayarları uygulayabileeğiniz bir VPS, VDS veya Dedicated’e sahip olmanız gerekiyor normal hostingler için değil bu ayarlar. Eğer bir sunucunuz yoksa veya yeni almayı düşünüyorsanız Kodespa’da yıllık alımlarda %20 indirim var kesinlikle öneririm. Buradan indirimli ürün sayfasına bakın: Kodespa VDS
Şimdi sunucumuza biraz ayar vermeye sırayla başlayalım arkadaşlar.
1- Tweak Settings kısmında yapılacak ayarlar;
Mailman kapat;
Email delivery retry time:
E-posta teslimini yeniden deneme süresini varsayılan 15 dakikadan 30 dakikaya güncelleyin.
Boxtrapper ve SpamAssassin:
Boxtrapper Spam Trap ve SpamAssassin Spam Box dağıtımını kapatın.
Disable MySQL Disk Calculations:
Kendi web sitenizi yalnızca VPS’de çalıştırıyorsanız, MYSQL disk hesaplamalarını devre dışı bırakarak sunucuda kullanılan kaynakları azaltabilirsiniz.
Mail Servislerini kapatın:
Sunucuda bir adet mail sistemi açık kalması yeterlidir diğerleri gereksiz kaynak tüketir. önerim roundcube açık kalsın.
İstatistik servisleri:
kapatın arkadaşlar zaten bunlara bakan insan sayısı %1 kadar düşüktür genellikle site ile ilgili bilgilere dış kaynaktan ulaşırlar. bir tanesini açık bırakın %1 lik kısım için 🙂
Notifications:
Bildirimleri kapatın arkadaşlar çok önemli değil ise (zaten cpanelde disk kullanımınız vs görülüyor) bildirimleri dikkate alan olacağını sanmıyorum sorun olduğunda herkes hosting sahibine mail atıyor 🙂
gzip compressions:
Sıkıştırma oranını artırın varsayılan olarak 6dır ancak gzip sıkıştırması hostinglerde yüksek olması iyidir.
Evet tweak setting alanındaki ayarlar bu kadar bunları kaydedin arkadaşlar.
2- Contact Manager
İletişim merkezine gidin arkadaşlar burada sunucu ne durumlarda size mail atmasını istiyorsanız ayarlayın ben bu kısımdaki tüm servislerden mail almayı kapattım. bu kısımda menüden görebilirsiniz notification yazan kısma gelince göreceksiniz buradan kafanıza göre ayarlama yapın.
3- Manage Plugins
Burada cpanel eklentilerini göreceksiniz bunların içinde eğer sunucunuz hakkında istatiskilere bakıyorsanız munin’i yükleyin ama analiz için farklı araç kullanıyorsanız CLAMAV dışında hepsini kapatın.
4- php Versiyon ve fonksiyonlar
Buradaki ayar ile sunucuda biraz da güvenlik sağlanmış oluyor 🙂 Öncelikle php versiyonu olarak en düşük 56 ki yine önermem 7 ve üzeri olması en iyi performansı alacağınızı garantiler buna ek olarak php fpm de kesinlikle aktif olması gerekir.
Son olarak güvenlik kısmına gelince aşağıdaki kısımda disable_ yazıp disable fonksiyonlar sizde muhtemelen boştur aşağıdaki kodları oraya ekleyin:
disable_functions = phpinfo,mail,openbasedir, posix_getpwuid, f_open, system,dl, array_compare, array_user_key_compare, passthru, cat, popen, proc_close, proc_get_status, proc_nice, proc_open, escapeshellcmd, escapeshellarg, show_source, posix_mkfifo, ini_restore, mysql_list_dbs, get_current_user, getmyuid,pconnect, link, symlink, fin, passthruexec, fileread, shell_exec, pcntl_exec, ini_alter, parse_ini_file, leak, apache_child_terminate, chown, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, allow_url_fopen, fpassthru, execute, shell, chgrp, stream_select, passthru, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual,name,pfsockopen,user_dir
Php versiyon ve disable fonk. tamamdır.
5-Memcached kurulumu
Sunucuda cache işlemleri için memcached kurulu olmasını öneririm
yum install memcached memcached -h memcached 1.2.6
Memcache PECL Uzantısını Yükle
Memcached sunucu üzerinde güzel bir şekilde çalışıyor olsa da, PECL uzantısı olmadan PHP’ye erişilebilir durumda değildir bunu düzeltmek için pecl kurulumu yapacağız.
pecl pecl install memcache ## Alternatif olarak bu şekilde de yapabilirsiniz; $ wget http://pecl.php.net/get/memcache-3.0.6.tgz tar xvfz memcache-3.0.6.tgz cd memcache-3.0.6 phpize ./configure make && make install ##Php.ini dosyasına aşağıdaki kodu da eklemeyi unutmayın. extension=memcache.so
Şimdi servisi yeniden başlatmak gerek
/etc/init.d/httpd restart ##veya service httpd restart
Şimdi de izin ayarlarını yapalım;
chmod 755 memcached chkconfig --add memcached
ve servisi başlatalım
service memcached start
Hepsi bu kadar memcached kurulumu tamamlandı ps değerinden bakabilirsiniz
ps -e | grep memcached 22805 ? 00:00:59 memcached 22807 ? 00:00:58 memcached 22809 ? 00:01:16 memcached 22811 ? 00:00:55 memcached 22813 ? 00:00:01 memcached 22815 ? 00:01:02 memcached 22817 ? 00:00:27 memcached 22819 ? 00:00:35 memcached 22821 ? 00:00:01 memcached 22823 ? 00:00:01 memcached 22825 ? 00:00:01 memcached
6- Mysql optimizasyon (my.cnf)
Yukardaki işlemler whm panel üzerinden yapılırken bu işlem SSH üzerinden yapılacağı için çok dikkatli olmanız gerekir yapacağınız basit bir hata mysql servisini çalışmaz hale getirecektir onun için kesinlikle my.cnf dosyasının yedeğini almanızı öneirim
Şimdi size sunucu boyutuna göre ayarlanmış my.cnf dosya kodları vereceğim bunlardak kendi sunucunuza uygun olanı kullanın.
nano /etc/my.cnf
12 GB ramli sunucu için ayar dosyası:
[mysqld] performance-schema=0 [client] port=3306 socket="/var/lib/mysql/mysql.sock" [mysqld] performance-schema=0 innodb_additional_mem_pool_size=16M innodb_buffer_pool_size=10G innodb_file_per_table=1 innodb_log_buffer_size=4M innodb_flush_log_at_trx_commit=2 log-bin=mysql-bin myisam_sort_buffer_size=64M expire_logs_days=7 query_cache_size=128M thread_cache_size=12 max_allowed_packet=15M skip-federated table_definition_cache=2048 local-infile=0 table_open_cache=8192 max_connections=60 read_buffer_size=2M slow_query_log=1 slow_query_log_file="/var/log/slow_queries.log" thread_concurrency=16 sort_buffer_size=2M port=3306 join_buffer_size=16M key_buffer_size=600M query_cache_limit=10M socket="/var/lib/mysql/mysql.sock" skip-external-locking query-cache-type=1 long_query_time=5 default-storage-engine=InnoDB tmp_table_size=384M max_heap_table_size=384M [myisamchk] read_buffer=2M key_buffer=256M sort_buffer_size=256M
İşlemler tamamdır beyler bu ayarlar ile 12 GB ram 8 CPU bir sunucuda oldukça güzel işler çıkartabilirsiniz. Gözümden kaçan veya eksik gördüğüüz noktalar olursa lütfen yorum yazarak bana bildirin güzel bir optimizasyon konusu olduğu düşüncesindeyim 🙂 Görüşmek üzere..
Güzel olmuş elinize sağlık 🙂
Beğenmene sevindim emre.
Merhaba Ali bey ,
10 Çekirdek işlemci ve 50 GB RAM olan bir VPS içinde bu işlemleri uygulayabilirmiyiz. Özellikle de 6. Basamak işlemi Mysql optimizasyon (my.cnf) kısmı bu konuda beni aydınlatmanızı rica ederim. Son olarak bu özellikteki bir VPS için cent OS 6’mı yoksa cent OS 7’mi tavsiye edersiniz. Şimdiden teşekkür ederim , iyi çalışmalar..
Merhaba, Optimizasyon işlemleini uygulayabilirsiniz, my.cnf optimizasyonunu ise belirttiğiniz özellikteki sunucu için benim verdiğim kodları kullanabilirsiniz ancak değerleri kendiniz girmelisiniz sunucu özelliklerine göre.
Cevap için teşekkür ederim , ancak son sorum sanırım gözünüyden kaçtı. cent OS hangi versiyon tercih etmeliyim cent OS 6 yada 7 öneriniz nedir acaba..?
Özür dilerim dalgınlık, Centos 7 öneririm (6 şu anda gayet stabil durumda ancak destek süresi azaldığı için yeni projelerde 7 kullanılması daha doğru kanısındayım.)
Zaman ayırdığınız için teşekkür ederim. İyi çalışmalar..
Okuduğunuz için ben teşekkür derim 🙂
kodespa gerçekten çok kaliteli ve uygun fiyatlı yerinde bir tavsiye olmuş
Ben de kullanıyorum oldukça kaliteli 😉
Mrhabalar, my.conf dosyamızı 10gb ramli 2 çekirdekli bir virtual server için optimizasyon değerleri nasıl olmalıdır?
Merhabalar, Bu yazıyı okuyup kendinize göre ayarlama yapabilirsiniz: https://alicomez.com/my-cnf-optimizasyon.slw
Merhaba , konuyu hortlatmış gibi olacağım ama bilginizden faydalanmak istiyorum. 4gb ram , 2 cpu olan vps sunucumuz için tavsiye edeceğiniz my.cnf ayarları nelerdir? mysql tabanlı sorgulama çok olan bir sistem. cevabınız için teşekkür ederim.
My.cnf optimizasyon bu bağlantıda my.cnf optimizasyonu hakkında bilgiler mevcut bakablirsiniz.
hocam selamlar yazınız oldukça faydalı fakat şunu sormak istiyorum anlık 20K hit çektiğimiz oluyor bunun için nasıl bir optimizasyon yapmamız gerekir ? sunucu düşüyor o hitleri görünce
sunucu kaynağı önemli etkendir eğer kaynaklar sorunsuz isteğe cevap verecek düzeyde ise farklı optimizasyonlar uygulanmalı.
Hocam harika bir yazı teşekkür ederim. Acaba güncelleme gelecek mi? Yanlışım yok ise 2018’de yazılmış görülmekte. Bende öğrenmek için vds paket satın aldım ve araştırma yaparken yazınızı buldum. Sunucu optimizasyonlarına fahiş fiyatlar vermek istemiyorum. Acaba bana yine okuma mı tavsiye ettiğiniz bir yazınız veya kaynak var ise yararlanmak isterim. İlgi ve alakanıza minnetarım.
Merhabalar, Yazıya güncelleme yapma konusunda sana garanti veremem ancak bunların hala geçerliliği vardır diye düşünüyorum (Kendinize göre uyarlayın zira bu sektörde her gün yeni özellikler çıkıyor biliyorsunuz 🙂 ) ancak tamamen bu piyasada eskisi kadar vakit geçirmediğim için size söz veremem.