Anasayfa » nasıl » Özel Bir Sanal Web Sunucusunu Düzenlemek

    Özel Bir Sanal Web Sunucusunu Düzenlemek

    Web sitenizi çalıştırmak için özel bir sanal sunucu elde ettiğinizde, herkes için yapılandırılmış olma şansı iyidir ve bir web sitesi çalıştırma performansını en üst düzeye çıkarmak için özelleştirilmez.

    içindekiler

    [saklamak]

    • 1 Genel bakış
    • 2 Linux Yapılandırması
      • 2.1 DNS'yi devre dışı bırak
      • 2.2 SpamAssassain'ı Devre Dışı Bırak
      • 2.3 Xinetd'i devre dışı bırak
      • 2.4 Sınırlı Plesk Bellek Kullanımı
      • 2.5 Plesk'ı Devre Dışı Bırakma veya Kapatma (isteğe bağlı)
    • 3 MySQL Yapılandırması
      • 3.1 Sorgu Önbelleğini Etkinleştir
      • 3.2 TCP / IP'yi devre dışı bırakın
    • 4 Apache Yapılandırması
    • 5 PHP Yapılandırması
      • 5.1 Gereksiz PHP Modüllerini Kaldırma
      • 5.2 PHP Opcode Önbelleği
    • 6 Yedekler
      • 6.1 Otomatik Yedekleme Komut Dosyası Oluşturma
      • 6.2 Rsync ile Saha Dışı Yedeklemeleri
    • 7 Güvenlik
      • 7.1 SSH Üzerinden Kök Girişini Devre Dışı Bırak
      • 7.2 SSH Sürüm 1'i Devre Dışı Bırak
      • 7.3 SSH Sunucusunu Yeniden Başlatın
      • 7.4 Açık Limanlar Kontrolü
      • 7.5 Güvenlik Duvarı Kurulumu
    • 8 Ayrıca Bkz.
    • 9 Kaynaklar

    genel bakış

    Performansı en üst düzeye çıkarmak istediğimiz bir dizi sorunlu alan var:

    • Linux yapılandırması
      Genelde olması gerekmeyen çalışan servisler vardır, daha fazla bağlantı için kullanılabilecek hafızayı boşa harcarlar..
    • MySQL yapılandırması
      Genellikle varsayılan ayarlar küçük bir sunucuya dayanır, performansı büyük ölçüde artırmak için birkaç önemli değişiklik ekleyebiliriz.
    • Apache yapılandırması
      Varsayılan olarak çoğu barındırma sağlayıcısı, hemen hemen her modül kurulu olduğunda apache yükler. Bir daha kullanmayacaksanız modülleri yüklemek için hiçbir neden yoktur.
    • PHP yapılandırması
      Varsayılan PHP yapılandırması da benzer şekilde şişirilir, genellikle bir ton gereksiz gereksiz modül takılır..
    • PHP Opcode Önbelleği
      PHP'nin komut dosyalarını her seferinde yeniden derlemesine izin vermek yerine, bir opcode önbelleği, derlenmiş komut dosyalarını büyük performans artışı için bellekte önbelleğe alır.
    • Yedekler
      Barındırma sağlayıcınız sizin için yapmayacağından, muhtemelen bazı otomatik yedeklemeler kurmalısınız..
    • Güvenlik
      Tabii ki, Linux varsayılan olarak yeterince güvenlidir, ancak genellikle birkaç hızlı ayarla çözebileceğiniz bazı göze çarpan güvenlik sorunları vardır..

    Linux Yapılandırması

    Kullanabileceğiniz sunucuya bağlı olarak değişebilecek olan oldukça fazla sayıda tweaks var. Bu tweaks, CentOS çalıştıran bir sunucu içindir, ancak DV sunucularının çoğunluğu için çalışması gerekir..

    DNS'yi devre dışı bırak

    Barındırma sağlayıcınız etki alanınızın DNS’sini kullanıyorsa (muhtemelen), DNS hizmetinin çalışmasını devre dışı bırakabilirsiniz..

    dns /etc/init.d/named stop chmod 644 /etc/init.d/named işlevini devre dışı bırak

    Chmod komutu, başlatma sırasında çalışmasını durdurarak yürütme iznini komut dosyasından kaldırır.

    SpamAssassain'ı devre dışı bırak

    Sunucunuzun kendisinde e-posta hesapları kullanmıyorsanız, anti-spam araçlarını kullanmaya zahmet etmemelisiniz. (Ayrıca Google Apps’ı kontrol etmelisiniz, çok daha iyi bir e-posta çözümü)

    /etc/init.d/psa-spamassassin, chmod 644'ü durdurur /etc/init.d/psa-spamassassin

    Xinetd'yi devre dışı bırak

    Xinetd işlemi, hiçbiri tipik bir web sunucusu için kullanışlı olmayan bir dizi başka işlemi barındırır..

    /etc/init.d/xinetd durdur chmod 644 /etc/init.d/xinetd

    Sınır Plesk Bellek Kullanımı

    Plesk panelini kullanıyorsanız, bir seçenek dosyası ekleyerek daha az bellek kullanması için zorlayabilirsiniz..

    vi / usr/local/psa/admin/conf/httpsd.custom.include

    Aşağıdaki satırları dosyaya ekleyin:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Bu seçeneğin MediaTemple DV sunucularında çalıştığı bilinir, ancak diğerlerinde kontrol edilmediğini unutmayın. (Bakınız referanslar)

    Plesk'i Devre Dışı Bırak veya Kapat (isteğe bağlı)

    Plesk'i yılda yalnızca bir kez kullanıyorsanız, çalışmasını sağlamak için çok az sebep vardır. Bu adımın tamamen isteğe bağlı ve biraz daha gelişmiş olduğunu unutmayın..

    Plesk'i kapatmak için aşağıdaki komutu çalıştırın:

    /etc/init.d/psa stop

    Aşağıdaki komutu çalıştırarak başlangıçta çalışmasını devre dışı bırakabilirsiniz:

    chmod 644 / etc / in.d.d/psa

    Bunu devre dışı bırakırsanız, dosya izinlerini geri değiştirmeden el ile başlatamayacağınızı unutmayın (chmod u + x).

    MySQL Yapılandırması

    Sorgu Önbelleğini Etkinleştir

    /Etc/my.cnf dosyanızı açın ve [mysqld] bölümünüze şu satırları ekleyin:

    [mysqld] query-cache-type = 1 query-cache-size = 8M

    İsterseniz, sorgu önbelleğine daha fazla bellek ekleyebilirsiniz, ancak çok fazla kullanmayın..

    TCP / IP'yi devre dışı bırak

    Şaşırtıcı sayıda ana bilgisayar varsayılan olarak TCP / IP üzerinden MySQL'e erişim sağlar; bu da bir web sitesi için bir anlam ifade etmez. Aşağıdaki komutu çalıştırarak mysql'in TCP / IP'yi dinleyip dinlemediğini anlayabilirsiniz:

    netstat -an | grep 3306

    Devre dışı bırakmak için /etc/my.cnf dosyanıza şu satırı ekleyin:

    skip-networking

    Apache Yapılandırması

    Genellikle /etc/httpd/conf/httpd.conf dosyasında bulunan httpd.conf dosyanızı açın.

    Şuna benzeyen çizgiyi bulun:

    Zaman aşımı 120

    Ve şununla değiştir:

    Zaman aşımı 20

    Şimdi bu satırları içeren bölümü bulun ve benzer bir şeye ayarlayın:

    StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

    PHP Yapılandırması

    PHP platformunda bir sunucu ayar yaparken akılda tutulması gereken şeylerden biri, her apache dizisinin PHP'yi bellekte ayrı bir yere yükleyeceğidir. Bu, kullanılmayan bir modülün PHP'ye 256k bellek eklemesi durumunda, 40 apache dizisinde 10 MB bellek harcıyorsunuz demektir..

    Gereksiz PHP Modüllerini Kaldırma

    Genellikle /etc/php.ini dosyasında bulunan php.ini dosyanızı bulmanız gerekir (Bazı dağıtımlarda, .ini dosyalarının bulunduğu bir /etc/php.d/ dizini olacağına dikkat edin, her modül için bir tane.

    Bu modüller ile herhangi bir loadmodule satırını yorumlayın:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • ionCube yükleyici
    • json
    • imap
    • ldap
    • ncurses'in

    Yapılacaklar: Buraya daha fazla bilgi ekleyin.

    PHP Opcode Önbelleği

    Kararlılık nedeniyle kişisel tercihim olan APC, eAccelerator ve Xcache dahil, kullanabileceğiniz çok sayıda opcode önbellek var..

    Xcache'i indirip bir dizine çıkartın ve ardından xcache kaynak dizininden aşağıdaki komutları çalıştırın:

    phpize ./configure - enable-xcache make make install

    Php.ini dosyanızı açın ve xcache için yeni bir bölüm ekleyin. PHP modülleriniz başka bir yerden yüklendiyse yolları ayarlamanız gerekir..

    vi /etc/php.ini

    Aşağıdaki bölümü dosyaya ekleyin:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Opcode önbelleğinin boyutunu ayarlamak için xcache.size'yi değiştirin xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Değişken önbellek boyutunu ayarlamak için xcache.var_size öğesini değiştirin Açık xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Açık xcache.stat = Açık xcache.optimizer = Kapalı

    Yapılacaklar: Bunu biraz genişletmeniz ve referanslardaki xcache bağlantısına ihtiyacınız var.

    Yedekler

    Web sitenizi otomatik olarak yedeklemekten çok daha önemli bir şey var. Çok yararlı olan barındırma sağlayıcınızdan anlık görüntü yedeklemeleri alabilirsiniz, ancak otomatik yedeklemeleri de tercih ederim..

    Otomatik Yedekleme Komut Dosyası Oluştur

    Genellikle / backup dizini, altında / backup / files dizini oluşturarak başlıyorum. İsterseniz bu yolları ayarlayabilirsiniz.

    mkdir -p / backups / dosyalar

    Şimdi yedekleme dizininde bir backup.sh betiği oluşturun:

    vi /backups/backup.sh

    Aşağıdakileri dosyaya ekleyin ve yolları ve mysqldump şifresini gerektiği gibi ayarlayın:

    #! / bin / sh THEDATE = "tarih +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / files / sitebackup $ THEDATE .tar / var / www / vhosts / web sitem-yolu / httpdocs gzip /backups/files/sitebackup$THEDATE.tar find / backups / files / site * -mtime +5 -exec rm  \; find / backups / files / db * -mtime +5 -exec rm  \;

    Betik önce bir tarih değişkeni yaratır, böylece tüm dosyalar tek bir yedekleme için aynı olarak adlandırılır, daha sonra veritabanını dökülür, web dosyalarını toplar ve bunları gzips eder. Bulma komutları, sürücünüzde boş alan kalmasını istemediğiniz için 5 günden daha eski dosyaları kaldırmak için kullanılır..

    Aşağıdaki komutu çalıştırarak betiği çalıştırılabilir duruma getirin:

    chmod u + x /backups/backup.sh

    Daha sonra cron tarafından otomatik olarak çalışacak şekilde atamanız gerekir. Yedekleme dizinine erişimi olan bir hesap kullandığınızdan emin olun..

    crontab -e

    Aşağıdaki satırı crontab'a ekleyin:

    1 1 * * * /backups/backup.sh

    Komut dosyasını önceden kullanıcı hesabına giriş yaparken çalıştırarak test edebilirsiniz. (Genellikle yedekleri root olarak çalıştırırım)

    Yedekleri Sitede Rsync ile Eşitle

    Artık sunucunuzun otomatik yedeklemelerini çalıştırdığınıza göre, rsync yardımcı programını kullanarak bunları başka bir yerde eşitleyebilirsiniz. Otomatik oturum açma için ssh anahtarlarını nasıl ayarlayacağınıza dair bu makaleyi okumak isteyeceksiniz: Tek Bir Komutla Uzak Sunucuya Ortak SSH Anahtarı Ekleme

    Bunu, bu komutu başka bir yerde bir linux veya Mac makinesinde çalıştırarak test edebilirsiniz (Evde bir linux sunucum var;

    rsync -a [email protected]: / yedekler / dosyalar / * / offsitebackups /

    Bu işlemin ilk kez çalıştırılması biraz zaman alabilir, ancak sonunda yerel bilgisayarınızda / offsitebackups / dizinindeki files dizininin bir kopyası olmalıdır. (Komut dosyasını çalıştırmadan önce bu dizini oluşturduğunuzdan emin olun)

    Bunu bir crontab satırına ekleyerek zamanlayabilirsiniz:

    crontab -e

    Her saat 45 dakikada bir rsync çalıştıracak olan aşağıdaki satırı ekleyin. Burada rsync'in tam yolunu kullandığımızı fark edeceksiniz..

    45 * * * * / usr / bin / rsync -a [email protected]: / yedekler / dosyalar / * / offsitebackups /

    Farklı bir zamanda veya günde yalnızca bir kez çalışacak şekilde programlayabilirsiniz. Bu gerçekten sana kalmış.

    Ssh veya ftp ile senkronize etmenizi sağlayacak birçok yardımcı program bulunduğunu unutmayın. Rsync kullanmak zorunda değilsiniz.

    Güvenlik

    Yapmak istediğiniz ilk şey, ssh aracılığıyla kullanmak için normal bir kullanıcı hesabınızın olduğundan ve kök dizinine geçmek için su kullanabildiğinizden emin olmaktır. Root ssh üzerinden direkt olarak oturum açmak için izin vermek çok kötü bir fikirdir..

    SSH Üzerinden Kök Girişini Devre Dışı Bırak

    / Etc / ssh / sshd_config dosyasını düzenleyin ve aşağıdaki satırı arayın:

    #PermitRootLogin evet

    Bu çizgiyi şöyle görünecek şekilde değiştirin:

    PermitRootLogin no

    Düzenli bir kullanıcı hesabınız olduğundan ve bu değişikliği yapmadan önce root isteyebileceğinizden emin olun, aksi takdirde kendinizi kilitleyebilirsiniz..

    SSH Sürüm 1'i devre dışı bırakın

    Önceki sürümlerden daha güvenli olduğu için SSH sürüm 2 dışında bir şey kullanmanın gerçekten bir nedeni yoktur. / Etc / ssh / sshd_config dosyasını düzenleyin ve aşağıdaki bölümü arayın:

    #Protocol 2,1 Protokol 2

    Gösterildiği gibi yalnızca Protokol 2'yi kullandığınızdan emin olun..

    SSH Sunucusunu yeniden başlatın

    Şimdi bunun etkili olması için SSH sunucusunu yeniden başlatmanız gerekecek..

    /etc/init.d/sshd restart

    Açık Limanı Kontrol Et

    Sunucunun hangi bağlantı noktalarını dinlediğini görmek için aşağıdaki komutu kullanabilirsiniz:

    netstat -an | grep LISTEN

    Gerçekten, plesk için 22, 80 ve muhtemelen 8443 numaralı portlardan başka bir şey dinlememelisiniz.

    Güvenlik Duvarı Kur

    Ana makale: Linux'ta Iptables Kullanımı

    İsteğe bağlı olarak daha fazla bağlantıyı engellemek için iptables firewall kurabilirsiniz. Örneğin, genellikle iş ağım dışındaki başka bağlantı noktalarına erişimi engellerim. Dinamik bir IP adresiniz varsa, bu seçeneğin önüne geçmek istersiniz..

    Şimdiye kadar bu kılavuzdaki tüm adımları uyguladıysanız, karışıma bir güvenlik duvarı eklemek de gerekmez, ancak seçeneklerinizi anlamanız iyi.

    Ayrıca bakınız

    • Linux'ta Iptables Kullanımı

    Referanslar

    • DV sunucunuzu optimize etmek (mediatemple.net)
    • XCache