Laman » bagaimana untuk » Tweaking Server Web Virtual Dedicated

    Tweaking Server Web Virtual Dedicated

    Apabila anda mendapatkan pelayan maya yang berdedikasi untuk menjalankan laman web anda, peluangnya adalah baik bahawa ia dikonfigurasi untuk semua orang, dan tidak disesuaikan untuk memaksimumkan prestasi untuk menjalankan laman web.

    Kandungan

    [sembunyi]

    • 1 Gambaran Keseluruhan
    • 2 Linux Configuration
      • 2.1 Lumpuhkan DNS
      • 2.2 Lumpuhkan SpamAssassain
      • 2.3 Matikan xinetd
      • 2.4 Hadkan Penggunaan Memori Plesk
      • 2.5 Lumpuhkan atau Matikan Plesk (pilihan)
    • 3 Konfigurasi MySQL
      • 3.1 Dayakan Cache Query
      • 3.2 Lumpuhkan TCP / IP
    • 4 Konfigurasi Apache
    • 5 PHP Configuration
      • 5.1 Buang Modul PHP Yang Tidak Diperlukan
      • 5.2 PHP Opcode Cache
    • 6 Backup
      • 6.1 Buat Skrip Cadangan Automatik
      • 6.2 Penyegerakan Penyegerakan Luar Tapak Dengan Rsync
    • 7 Keselamatan
      • 7.1 Matikan Log masuk Root Lebih SSH
      • 7.2 Lumpuhkan Versi SSH 1
      • 7.3 Mulakan semula pelayan SSH
      • 7.4 Semak untuk Pelabuhan Terbuka
      • 7.5 Persediaan Firewall
    • 8 Lihat Juga
    • 9 Rujukan

    Gambaran keseluruhan

    Terdapat beberapa kawasan masalah di mana kami ingin memaksimumkan prestasi:

    • Konfigurasi Linux
      Biasanya terdapat perkhidmatan yang tidak perlu, membazirkan memori yang boleh digunakan untuk lebih banyak sambungan.
    • Konfigurasi MySQL
      Selalunya tetapan lalai didasarkan pada pelayan kecil, kita boleh menambah beberapa perubahan penting untuk meningkatkan prestasi yang banyak.
    • Konfigurasi Apache
      Secara lalai kebanyakan pembekal hosting memasang apache dengan hampir setiap modul yang dipasang. Tidak ada sebab untuk memuat modul jika anda tidak akan menggunakannya.
    • Konfigurasi PHP
      Konfigurasi PHP lalai juga dibengkokkan, biasanya terdapat satu ton modul tambahan yang tidak perlu dipasang.
    • PHP Opcode Cache
      Daripada membenarkan PHP untuk mengkompilasi semula skrip setiap kali, cache opcode akan menyembunyikan skrip yang disusun dalam ingatan untuk meningkatkan prestasi tinggi.
    • Backup
      Sekiranya mungkin membuat persediaan beberapa sandaran automatik, kerana penyedia hosting anda tidak akan melakukannya untuk anda.
    • Keselamatan
      Pastinya, Linux cukup selamat secara lalai, tetapi biasanya terdapat beberapa isu keselamatan yang dapat anda selesaikan dengan beberapa tetapan cepat.

    Konfigurasi Linux

    Terdapat beberapa tweak yang boleh anda lakukan, yang akan sedikit berbeza berdasarkan pelayan yang anda gunakan. Tweak ini adalah untuk pelayan yang menjalankan CentOS, tetapi mereka harus bekerja untuk majoriti pelayan DV.

    Lumpuhkan DNS

    Jika penyedia hosting anda mengendalikan DNS untuk domain anda (mungkin), maka anda boleh mematikan perkhidmatan DNS daripada berjalan.

    lumpuhkan dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    Perintah chmod mengalih keluar kebenaran dari skrip, menghentikannya daripada berjalan pada permulaan.

    Lumpuhkan SpamAssassain

    Jika anda tidak menggunakan akaun e-mel pada pelayan anda sendiri, anda tidak perlu bersusah payah menjalankan alat anti-spam. (Anda juga harus menyemak Google Apps, penyelesaian e-mel yang lebih baik)

    /etc/init.d/psa-spamassassin hentikan chmod 644 /etc/init.d/psa-spamassassin

    Lumpuhkan xinetd

    Proses xinetd menempatkan beberapa proses lain, tidak ada yang berguna untuk pelayan web biasa.

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

    Hadkan Penggunaan Memori Plesk

    Jika anda menggunakan panel plesk, anda boleh memaksanya untuk menggunakan memori yang kurang dengan menambah fail pilihan.

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

    Tambah baris berikut ke fail:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Perhatikan bahawa opsyen ini diketahui berfungsi pada pelayan MediaTemple DV, tetapi belum diperiksa pada mana-mana orang lain. (Lihat Rujukan)

    Lumpuhkan atau Matikan Plesk (pilihan)

    Jika anda hanya menggunakan Plesk sekali setahun, ada sebab yang sangat sedikit untuk membiarkannya berjalan sama sekali. Ambil perhatian bahawa langkah ini adalah sepenuhnya pilihan, dan sedikit lebih maju.

    Jalankan arahan berikut untuk mematikan plesk:

    /etc/init.d/psa stop

    Anda boleh mematikannya daripada berjalan pada permulaan dengan menjalankan arahan berikut:

    chmod 644 /etc/init.d/psa

    Ambil perhatian bahawa jika anda melumpuhkannya, maka anda tidak boleh memulakannya secara manual tanpa mengubah keizinan fail kembali (chmod u + x).

    Konfigurasi MySQL

    Dayakan Cache Query

    Buka fail /etc/my.cnf anda dan tambahkan baris berikut dalam bahagian [mysqld] anda seperti ini:

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

    Anda boleh menambah lebih banyak memori ke cache pertanyaan jika anda mahu, tetapi jangan gunakan terlalu banyak.

    Lumpuhkan TCP / IP

    Bilangan tuan rumah yang mengejutkan membolehkan akses kepada MySQL pada TCP / IP secara lalai, yang tidak masuk akal untuk laman web. Anda boleh mengetahui sama ada mysql sedang mendengar pada TCP / IP dengan menjalankan perintah berikut:

    netstat -an | grep 3306

    Untuk melumpuhkan, tambah baris berikut ke fail /etc/my.cnf anda:

    skip-networking

    Konfigurasi Apache

    Buka fail httpd.conf anda, sering dijumpai di /etc/httpd/conf/httpd.conf

    Cari baris yang kelihatan seperti ini:

    Masa tunggu 120

    Dan ubahlah ini:

    Masa tunggu 20

    Sekarang cari bahagian yang merangkumi garis-garis ini, dan sesuaikan dengan sesuatu yang serupa:

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

    Konfigurasi PHP

    Salah satu perkara yang perlu diingat apabila tweaking pelayan di platform PHP adalah bahawa setiap thread apache tunggal akan memuatkan PHP di lokasi berasingan dalam ingatan. Ini bermakna jika modul yang tidak digunakan menambah 256k memori ke PHP, merentasi 40 benang apache anda membazir memori 10MB.

    Keluarkan Modul PHP Yang Tidak Diperlukan

    Anda perlu mencari fail php.ini anda, yang biasanya terdapat di /etc/php.ini (Perhatikan bahawa pada beberapa pengedaran, terdapat direktori /etc/php.d/ dengan beberapa fail .ini, satu untuk setiap modul.

    Komen mana-mana baris loadmodule dengan modul ini:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • ioncube-loader
    • json
    • imap
    • ldap
    • ncurses

    Todo: Tambah maklumat lanjut di sini.

    PHP Opcode Cache

    Terdapat beberapa cache opcode yang boleh anda gunakan, termasuk APC, eAccelerator, dan Xcache, yang terakhir adalah pilihan peribadi saya kerana kestabilan.

    Muat turun xcache dan ekstraknya ke direktori, kemudian jalankan arahan berikut dari direktori sumber xcache:

    phpize ./configure --enable-xcache membuat membuat pemasangan

    Buka fail php.ini dan tambahkan bahagian baru untuk xcache. Anda perlu menyesuaikan laluan jika modul php anda dimuatkan dari tempat lain.

    vi /etc/php.ini

    Tambahkan bahagian berikut pada fail:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Ubah xcache.size untuk menyesuaikan saiz cache opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Tukar xcache.var_size untuk melaraskan saiz cache ubah xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = Pada xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Pada xcache.stat = Pada xcache.optimizer = Off

    Todo: Perlu mengembangkan sedikit ini dan menghubungkan ke xcache dalam rujukan.

    Backup

    Terdapat sedikit lebih penting daripada mempunyai sandaran automatik laman web anda. Anda mungkin dapat mendapatkan sandaran snapshot daripada penyedia hosting anda, yang juga sangat berguna, tetapi saya lebih suka mempunyai backup automatik juga.

    Buat Skrip Sandaran Automatik

    Saya biasanya mula membuat direktori / backup, dengan direktori / sandaran / fail di bawahnya. Anda boleh menyesuaikan laluan ini jika anda mahu.

    mkdir -p / sandaran / fail

    Sekarang buat script backup.sh di dalam direktori sandaran:

    vi / backups / backup.sh

    Tambahkan yang berikut ke fail, menyesuaikan kata laluan dan kata laluan mysqldump yang diperlukan:

    #! / bin / sh THEDATE = "tarikh +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backup / files / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar find / backups / files / site * -mtime +5 -exec rm  \; mencari / sandaran / fail / db * -mtime +5 -exec rm  \;

    Skrip pertama akan membuat pembolehubah tarikh supaya semua fail akan dinamakan sama untuk sandaran tunggal, kemudian membuang pangkalan data, mencantumkan fail web dan gzip mereka. Perintah carian digunakan untuk mengalih keluar sebarang fail lebih lama dari 5 hari, kerana anda tidak mahu pemacu anda kehabisan ruang.

    Buat skrip yang boleh dilaksanakan dengan menjalankan perintah berikut:

    chmod u + x / backups / backup.sh

    Seterusnya anda perlu menetapkannya untuk dijalankan secara automatik oleh cron. Pastikan anda menggunakan akaun yang mempunyai akses ke direktori sandaran.

    crontab -e

    Tambah baris berikut ke crontab:

    1 1 * * * /backups/backup.sh

    Anda boleh menguji skrip sebelum masa dengan menjalankannya semasa log masuk ke akaun pengguna. (Saya biasanya menjalankan sandaran sebagai root)

    Penyegerakan Penyegerakan Luar Tapak Dengan Rsync

    Sekarang bahawa anda mempunyai sandaran automatik pelayan anda berjalan, anda boleh menyegerakkannya di tempat lain dengan menggunakan utiliti rsync. Anda akan mahu membaca artikel ini tentang cara menyusun kunci ssh untuk log masuk automatik: Tambah Kunci SSH Umum kepada Pelayan Jauh dalam Command Single

    Anda boleh menguji ini dengan menjalankan arahan ini pada mesin linux atau Mac di lokasi lain (saya mempunyai pelayan linux di rumah, di mana saya menjalankannya)

    rsync -a [email protected]: / sandaran / fail / * / offsitebackups /

    Ini akan mengambil masa yang agak lama untuk dijalankan buat kali pertama, tetapi pada akhirnya komputer tempatan anda sepatutnya mempunyai salinan direktori file dalam / offsitebackups / direktori. (Pastikan untuk mencipta direktori tersebut sebelum menjalankan skrip)

    Anda boleh menjadualkan ini dengan menambahkannya ke baris crontab:

    crontab -e

    Tambahkan baris berikut, yang akan berjalan rsync setiap jam pada tanda 45 minit. Anda akan melihat bahawa kami menggunakan laluan penuh ke rsync di sini.

    45 * * * * / usr / bin / rsync -a [email protected]: / sandaran / fail / * / offsitebackups /

    Anda boleh menjadualkannya untuk berlari pada masa yang berlainan, atau hanya sekali sehari. Itu sememangnya terpulang kepada anda.

    Perhatikan bahawa terdapat banyak utiliti yang akan membolehkan anda menyegerakkan melalui ssh atau ftp. Anda tidak perlu menggunakan rsync.

    Keselamatan

    Perkara pertama yang anda ingin lakukan ialah pastikan anda mempunyai akaun pengguna biasa untuk menggunakan melalui ssh, dan pastikan anda boleh menggunakan su untuk bertukar menjadi root. Idea yang sangat buruk untuk membolehkan log masuk terus untuk root di atas ssh.

    Lumpuhkan Login Root Lebih SSH

    Edit fail / etc / ssh / sshd_config, dan cari baris berikut:

    #PermitRootLogin ya

    Tukar baris itu untuk kelihatan seperti ini:

    PermitRootLogin no

    Pastikan anda mempunyai akaun pengguna biasa dan boleh su root sebelum membuat perubahan ini, jika tidak, anda mungkin mengunci diri anda.

    Lumpuhkan Versi SSH 1

    Tidak ada sebab untuk menggunakan apa-apa selain SSH versi 2, kerana ia lebih selamat daripada versi sebelumnya. Edit fail / etc / ssh / sshd_config, dan cari bahagian berikut:

    # Protokol 2,1 Protokol 2

    Pastikan bahawa anda hanya menggunakan Protokol 2 seperti yang ditunjukkan.

    Restart SSH Server

    Sekarang, anda perlu memulakan semula pelayan SSH untuk melaksanakannya.

    /etc/init.d/sshd restart

    Semak Pelabuhan Terbuka

    Anda boleh menggunakan arahan berikut untuk melihat mana pelabuhan pelayan sedang mendengar:

    netstat -an | grep LISTEN

    Anda benar-benar tidak sepatutnya mendengar apa-apa daripada pelabuhan 22, 80, dan mungkin 8443 untuk plesk.

    Menyediakan Firewall

    Artikel utama: Menggunakan Iptables di Linux

    Anda boleh membuat pilihan firewall iptables untuk menghalang lebih banyak sambungan. Sebagai contoh, saya biasanya menyekat akses kepada mana-mana pelabuhan lain selain dari rangkaian kerja saya. Sekiranya anda mempunyai alamat IP dinamik, anda ingin mengelakkan pilihan tersebut.

    Jika anda telah mengikuti semua langkah dalam panduan ini setakat ini, mungkin tidak perlu juga menambah firewall pada campuran itu, tetapi ia adalah baik untuk memahami pilihan anda.

    Lihat juga

    • Menggunakan Iptables di Linux

    Rujukan

    • Mengoptimumkan pelayan DV anda (mediatemple.net)
    • XCache