Sunucu Optimizasyonu – İkinci Bölüm

sunucu-optimizasyonu-lemp-lamp

Herkese merhaba! Sunucu optimizasyonu yazımın, ikinci bölümüyle devam ediyorum. Linux VPS Kurulumu yazımda, web sitemizin sunucu ayağını hazırlamıştık. Gördüğünüz gibi, kurmamız gereken 2 ayak daha var. Merak etmeyin, zor kısmı hallettik. Bu yazıda, LEMP stack kurulumunu anlatacağım.

UYARI: Linux VPS Kurulumu adlı yazımda anlattığım, güvenlik duvarı ve swap alanı oluşturma ayarlarını uygulamayın. İşletim sistemini 64 bit seçin. Aksi halde, ServerPilot hata verecektir.


1.) ServerPilot nedir? ServerPilot servisine nasıl üye olunur?

ServerPilot, sunucumuza Apache, Nginx, Mysql ve Php (Fast-CGI ile) programlarını otomatik kuran, sunucumuzu otomatik güncellemeye açan, güvenlik duvarını (UFW) otomatik ayarlayan, sunucuya SWAP alanı ekleyen bir scripttir. LAEMP stacktir. Bağlantı isteklerine nginx ile yanıt veren, arka işlemleri apache ile yürüten bir sistemdir.

ServerPilot kısmen ücretsizdir. Demo anlamına gelmesin. Temel özellikler, sonsuza kadar ücretsiz. Monitoring ve logging (kaynak tüketimi takibi, log kayıtlarını inceleme) özellikleri için ek ücret talep ediyorlar. Logging ve monitoring kısmına, dördüncü yazımda değineceğim. Özetle, ServerPilot‘un bizi ilgilendiren kısmı ücretsizdir.

Açık kaynaklı pek çok panel ve otomatik scriptleri uzun süreli kullandım. Panel kullanmanızı tavsiye etmiyorum. Güvenlik sorunları var ve kaynak tüketimi fazla oluyor. Gerekli ayarları yaptıktan sonra, ServerPilot son derece stabil, basit ve güvenli bir yol.

Aşağıdaki linkten, ServerPilot‘a ücretsiz üye olabilirsiniz. Benim referans linkimi kullanarak, ücretli özellikleri, bir süreliğine kullanma hakkınız da olacak.

https://www.serverpilot.io/?refcode=d44334d31c40

Üye olduktan sonra, size verilecek bağlantı kodunu, sunucunuzda root olarak çalıştırın ve arkanıza yaslanın. Gerisini ServerPilot halledecek.

Kurulum bittikten sonra, ServerPilot menüsünden, Create an app seçeneğine gelin.

serverpilot-create-app


1a.) ServerPilot Optimizasyonu

Otomatik script dedim fakat, kusursuz değil. Ücretli servisleri (monitoring, logging) kapatacağız. Apache ve kullanmadığımız Php sürümlerini devre dışı bırakacağız. Mysql yerine MariaDB kullanacağız. Bunların hepsini yaptıktan sonra, yaklaşık 50 mb RAM kazancı ve daha da önemlisi, önemli miktarda hız ve kapasite artışı sağlayacağız.


1aa.) Mysql yerine MariaDB kullanalım.

mariadb-vs-mysql

Performans artışı ve kaynak tüketimini azaltmak adına, yapmamız gereken en önemli ayarlardan biri. Korkmayın! MariaDB, Mysql ile uyumlu. Hiçbir veri tabanı ve hiçbir ayarı değiştirmeden, veri tabanı servisimizi değiştirebileceğiz. Wikipedi, Facebook gibi devler bile, bu değişimi gerekli gördüyse, elimizdeki ufacık donanıma Mysql ile eziyet etmeyelim değil mi?

Aşağıdaki komut ile, var olan Mysql root şifremizi not alalım. MariaDB için de aynı şifreyi kullanmak zorundayız!

cat ~/.my.cnf

İkinci adım ise, sunucu repomuza MariaDB’yi eklemek olacak. 5.5 sürümü, ServerPilot ile uyumlu olduğu için, 5.5 reposunu ekleyeceğiz. Aşağıdaki komutları, root olarak sunucunuza yazın.

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb ftp://ftp.ulak.net.tr/pub/MariaDB/repo/5.5/ubuntu trusty main'

MariaDB reposunu başarıyla ekledikten sonra, kuruluma geçeceğiz. Veri tabanı için root şifresi sorunca, not aldığımız şifrenin aynısını yazacağız. (Putty için, sağ tık yapıştırma komutu verir.)

sudo apt-get update

sudo apt-get install mariadb-server


1ab.) Apache sunucusunu devre dışı bırakıp, sadece Nginx kullanalım.

winscp-ssh-anahtari-ile-baglanti

winscp-ssh-anahtari-ile-baglanti-2

WinSCP programı ile (SFTP) sunucumuza bağlanıp, bir iki dosyada değişiklik yapacağız. Gelişmiş kısmından, SSH Anahtarınızı eklemeyi unutmayın. Daha önce sunucumuzu, parolasız giriş için ayarlamıştık.

Aşağıdaki dizine ulaşın.

/etc/nginx-sp/vhosts.d/wordpress.d

main.conf dosyasının uzantısını, main.conf.bak olarak değiştirin. Bu sayede, ters giden bir şey olursa, yedek yapılandırma ayarı sağlam kalacak. Aynı dizine, main.custom.conf adında bir dosya oluşturun ve içine, aşağıdaki kodları ekleyin ve kaydedin.


index index.php index.html index.htm;

# Don't serve hidden files.
location ~ /. {
    deny all;
}

location = /favicon.ico {
    log_not_found off;
}

location / {
    try_files     $uri $uri/ /index.php?$args;
}

location ~ .php$ {
  include       fastcgi_params;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  # You must replace "SYSUSER" with the app's system user's name
  # and "APPNAME" with your app's name.
  ############################################################
  fastcgi_pass  unix:/srv/users/serverpilot/run/wordpress.php-fpm.sock;

  # Prevent arbitrary code execution by third parties with
  # try_files directive.
  # http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP
  try_files     $uri =404;
} 

Nginx servisini, aşağıdaki komut ile yeniden başlatalım.

sudo service nginx-sp restart


1ac.) Gereksiz ServerPilot servislerini kapatalım.

Apache http sunucusunu devre dışı bıraktık. Sitemiz için, en güncel Php sürümünü kullanacağız. Monitoring ve logging servisi zaten ücretli. İşimize yaramayan tüm servisleri kapatalım ve RAM tasarrufu yapalım. Silmenizi tavsiye etmiyorum, belki bir gün işinize yarar. Bütünlük bozulmasın. Kapatsanız da yeterli olur.

sudo service apache-sp stop
sudo service serverpilot-stats stop
sudo service php5.4-fpm-sp stop
sudo service php5.5-fpm-sp stop

Hatta bu işe yaramayan servisleri, crontab ile, her reboot sonrasında, otomatik kapanacak şekilde ayarlayabilirsiniz.


İkinci ayağı da kurduk. Geriye CloudFlare ile, alan adını sunucuya bağlayıp, güvenlik ayarlarını yapmak kaldı. Sunucu optimizasyonu yazı serimin, dördüncü partından da spoiler vereyim. Bir iki kernel optimizesi ile bağlantı kapasitesini artıracağız. Monitoring ve logging nasıl yapılır? Bu gibi şeylerden bahsedeceğim. Anlattığım bütün yöntemler, denenmiş ve başarılı olunmuş şeylerdir. Bir hata ile karşılaşırsanız, ne yaptığınızı kontrol edin. Baktınız olmuyor, yorum yapmaktan çekinmeyin.

You may also like...

Leave a Reply

%d bloggers like this: