12Sep

Tweaking Dedicated Server Web Virtual

Bila Anda mendapatkan server virtual khusus untuk menjalankan situs web Anda, kemungkinan besar itu dikonfigurasi untuk semua orang, dan tidak disesuaikan untuk memaksimalkan kinerja menjalankan situs web.

Daftar Isi

[hide]

  • 1 Ikhtisar
  • 2 Konfigurasi Linux
    • 2.1 Nonaktifkan DNS
    • 2.2 Nonaktifkan SpamAssassain
    • 2.3 Nonaktifkan xinetd
    • 2.4 Batasi Penggunaan Memori Plesk
    • 2.5 Nonaktifkan atau Nonaktifkan Plesk( opsional)
  • 3 Konfigurasi MySQL
    • 3.1 Aktifkan Query Cache
    • 3.2 Nonaktifkan Konfigurasi Apache TCP / IP
  • 4 Konfigurasi
  • 5 Konfigurasi
    • 5.1 Hapus Modul PHP yang Tidak Diperlukan
    • 5.2 PHP Opcode Cache
  • 6 Backup
    • 6.1 Buat Skrip Backup Otomatis
    • 6.2 Sinkronisasi Backup Off-Site Dengan Rsync
  • 7 Keamanan
    • 7.1 Nonaktifkan RootMasuki SSH
    • 7.2 Nonaktifkan SSH Versi 1
    • 7.3 Hidupkan Ulang Server SSH
    • 7.4 Periksa Port Terbuka
    • 7.5 Setup Firewall
  • 8 Lihat juga
  • 9 Referensi

Ikhtisar

Ada sejumlah area masalah dimana kita memudart untuk memaksimalkan kinerja:

  • Konfigurasi Linux
    Biasanya ada layanan yang berjalan yang tidak perlu, membuang-buang memori yang bisa digunakan untuk koneksi yang lebih banyak. Konfigurasi
  • MySQL
    Seringkali pengaturan default didasarkan pada server kecil, kita dapat menambahkan beberapa perubahan kunci untuk meningkatkan kinerja.
  • Konfigurasi Apache
    Secara default kebanyakan penyedia hosting menginstal apache dengan hampir setiap modul yang terpasang. Tidak ada alasan untuk memuat modul jika Anda tidak pernah menggunakannya. Konfigurasi PHP

  • Konfigurasi PHP default juga membengkak, biasanya ada satu ton modul ekstra yang tidak perlu terpasang.
  • PHP Opcode Cache
    Alih-alih membiarkan PHP mengkompilasi ulang skrip setiap saat, cache opcode akan meng-cache skrip yang dikompilasi di memori karena peningkatan kinerja yang besar.
  • Backup
    Mungkin perlu menyiapkan beberapa backup otomatis, karena penyedia hosting Anda tidak akan melakukannya untuk Anda.
  • Security
    Tentu, Linux cukup aman secara default, tapi biasanya ada beberapa masalah keamanan yang mencolok yang dapat Anda perbaiki dengan beberapa pengaturan cepat. Konfigurasi Linux

Ada cukup banyak tweak yang dapat Anda lakukan, yang akan sedikit berbeda berdasarkan server yang Anda gunakan. Tweak ini adalah untuk server yang menjalankan CentOS, namun mereka harus bekerja untuk sebagian besar server DV.

Nonaktifkan DNS

Jika penyedia hosting Anda menangani DNS untuk domain Anda( mungkin), maka Anda dapat menonaktifkan layanan DNS agar tidak berjalan.

menonaktifkan dns /etc/init.d/ bernama stop chmod 644 /etc/init.d/ bernama

Perintah chmod menghapus izin eksekusi dari skrip, menghentikannya agar tidak berjalan saat startup.

Nonaktifkan SpamAssassain

Jika Anda tidak menggunakan akun email di server Anda sendiri, Anda tidak perlu repot-repot menjalankan alat anti-spam.(Juga Anda harus memeriksa Google Apps, solusi email yang lebih baik)

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

Nonaktifkan xinetd

Proses xinetd menampung sejumlah proses lainnya, tidak ada yang berguna untuk server web biasa.

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

Batasi Penggunaan Memori Plesk

Jika Anda menggunakan panel plesk, Anda dapat memaksanya menggunakan lebih sedikit memori dengan menambahkan file pilihan.

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

Tambahkan baris berikut ke file:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Perhatikan bahwa opsi ini diketahui bekerja pada server MediaTemple DV, namun belum diperiksa pada orang lain.(Lihat Referensi)

Nonaktifkan atau Nonaktifkan Plesk( opsional)

Jika Anda hanya menggunakan Plesk setahun sekali, hanya ada sedikit alasan untuk membiarkannya berjalan sama sekali. Perhatikan bahwa langkah ini benar-benar opsional, dan sedikit lebih maju.

Jalankan perintah berikut untuk mematikan plesk:

/etc/init.d/ psa stop

Anda dapat menonaktifkannya agar tidak berjalan saat startup dengan menjalankan perintah berikut:

chmod 644 /etc/init.d/ psa

Perhatikan bahwa jika Anda menonaktifkannya, Anda tidak dapat memulainya secara manual tanpamengubah hak akses file kembali( chmod u + x).

Konfigurasi MySQL

Aktifkan Query Cache

Buka file my.cnf /etc/ Anda dan tambahkan baris berikut di bagian [mysqld] Anda seperti ini:

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

Anda dapattambahkan lebih banyak memori ke cache kueri jika Anda mau, tapi jangan gunakan terlalu banyak.

Nonaktifkan TCP / IP

Sejumlah host yang mengejutkan memungkinkan akses ke MySQL pada TCP / IP secara default, yang tidak masuk akal untuk sebuah situs web. Anda bisa mengetahui apakah mysql sedang mendengarkan TCP / IP dengan menjalankan perintah berikut:

netstat -an |grep 3306

Untuk menonaktifkan, tambahkan baris berikut ke file my.cnf /etc/ Anda:

skip-networking

Konfigurasi Apache

Buka file httpd.conf Anda, sering ditemukan di /etc/httpd/conf/ httpd.conf

Temukan baris yang terlihat seperti ini:

Timeout 120

Dan ubah menjadi ini:

Timeout 20

Sekarang temukan bagian yang menyertakan garis ini, dan sesuaikan dengan yang serupa:

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

Konfigurasi PHP

Salah satu hal untukPerlu diingat ketika tweaker server pada platform PHP adalah bahwa setiap thread apache tunggal akan memuat PHP di lokasi yang terpisah di memori. Ini berarti jika modul yang tidak digunakan menambahkan 256k memori ke PHP, di 40 benang apache Anda menghabiskan 10MB memori.

Hapus Modul PHP yang Tidak Diperlukan

Anda harus menemukan file php.ini Anda, yang biasanya ditemukan di /etc/ php.ini( Perhatikan bahwa pada beberapa distro, akan ada direktori /etc/php.d/ dengan sejumlah file. ini, satu untuksetiap modul

Mengomentari setiap baris loadmodule dengan modul ini:

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

Todo: Tambahkan lebih banyak informasi di sini.

PHP Opcode Cache

There Thereadalah sejumlah cache opcode yang dapat Anda gunakan, termasuk APC, eAccelerator, dan Xcache, yang terakhir menjadi preferensi pribadi saya karena stabilitas.

Download xcache dan ekstrak ke dalam sebuah direktori, kemudian jalankan perintah berikut dari sumber xcache.direktori:

phpize. /configure --enable-xcache buat make install

Buka file php.ini anda dantambahkan bagian baru untuk xcache. Anda harus menyesuaikan jalur jika modul php Anda dimuat dari tempat lain.

vi /etc/ php.ini

Tambahkan bagian berikut ke file:

[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 ukuran cache opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Ubah xcache.var_size untuk menyesuaikan ukuran cache variabel 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 = Nonaktifkan xcache.readonly_protection =Pada xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Pada xcache.stat = Pada xcache.optimizer = Off

Todo: Perlu untuk memperluas ini sedikit dan link ke xcache di referensi.

Backup

Ada sedikit lebih penting daripada memiliki backup otomatis dari situs Anda. Anda mungkin bisa mendapatkan backup snapshot dari penyedia hosting Anda, yang juga sangat berguna, tapi saya lebih memilih untuk melakukan backup otomatis juga.

Buat Skrip Backup Otomatis

Saya biasanya memulai dengan membuat direktori / backup, dengan direktori file /backups/ di bawahnya. Anda dapat menyesuaikan jalur ini jika Anda mau.

mkdir -p /backups/ file

Sekarang buat skrip backup.sh di dalam direktori backup:

vi /backups/ backup.sh

Tambahkan yang berikut ke file, sesuaikan jalur dan kata sandi mysqldump seperlunya:

#!/bin/ sh THEDATE = `date +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak tar -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ my-website-path / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar temukan situs /backups/files/ * -mtime +5 -exec rm{ } \;temukan /backups/files/ db * -mtime +5 -exec rm{ } \;

Script pertama akan membuat variabel tanggal sehingga semua file akan diberi nama yang sama untuk satu cadangan, lalu membuang database, memasang file web dan gzip mereka. Perintah find digunakan untuk menghapus file yang lebih tua dari 5 hari, karena Anda tidak ingin drive Anda kehabisan ruang.

Buat skrip dieksekusi dengan menjalankan perintah berikut:

chmod u + x /backups/ backup.sh

Selanjutnya Anda harus menetapkannya untuk dijalankan secara otomatis oleh cron. Pastikan Anda menggunakan akun yang memiliki akses ke direktori backup.

crontab -e

Tambahkan baris berikut ke crontab:

1 1 * * * /backups/ backup.sh

Anda dapat menguji skrip sebelumnya dengan menjalankannya saat masuk ke akun pengguna.(Saya biasanya menjalankan backup sebagai root)

Sync Backup Off-Site Dengan Rsync

Sekarang setelah backup otomatis server Anda berjalan, Anda dapat menyinkronkannya di tempat lain dengan menggunakan utilitas rsync. Anda akan ingin membaca artikel ini tentang cara men-setup tombol ssh untuk login otomatis: Tambahkan Kunci SSH Publik ke Server Jauh dalam Command Tunggal

Anda dapat menguji ini dengan menjalankan perintah ini pada mesin linux atau Mac di lokasi lain( Imemiliki server linux di rumah, di situlah saya menjalankan ini)

rsync -a [email protected]: /backups/files/ * /offsitebackups/

Ini akan memakan waktu cukup lama untuk dijalankan pertama kali, namun pada akhirnya komputer lokal Anda harus memiliki salinandari direktori file dalam direktori /offsitebackups/.(Pastikan untuk membuat direktori itu sebelum menjalankan skrip)

Anda dapat menjadwalkan ini dengan menambahkannya ke baris crontab:

crontab -e

Tambahkan baris berikut, yang akan menjalankan rsync setiap jam pada tanda 45 menit. Anda akan melihat bahwa kita menggunakan path lengkap untuk rsync di sini.

45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/

Anda bisa menjadwalkannya untuk berjalan pada waktu yang berbeda, atau hanya sekali per hari. Itu benar-benar terserah Anda.

Perhatikan bahwa ada banyak utilitas yang memungkinkan Anda melakukan sinkronisasi via ssh atau ftp. Anda tidak perlu menggunakan rsync.

Security

Hal pertama yang ingin Anda lakukan adalah memastikan bahwa Anda memiliki akun pengguna biasa untuk digunakan melalui ssh, dan pastikan Anda dapat menggunakan su untuk beralih ke root. Ini adalah ide yang sangat buruk untuk memungkinkan login langsung untuk root over ssh.

Nonaktifkan Login Root Melalui SSH

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

#PermitRootLogin yes

Ubah baris itu agar terlihat seperti ini:

PermitRootLogin no

Pastikan Anda mempunyai akun pengguna biasa dan dapat melakukan su keAkar sebelum Anda membuat perubahan ini, jika tidak, Anda bisa mengunci diri Anda sendiri.

Nonaktifkan SSH Versi 1

Sebenarnya tidak ada alasan untuk menggunakan versi selain SSH 2, karena lebih aman dari versi sebelumnya. Edit file sshd_config /etc/ssh/, dan cari bagian berikut:

#Protocol 2,1 Protokol 2

Pastikan Anda hanya menggunakan Protokol 2 seperti yang ditunjukkan.

Restart SSH Server

Sekarang Anda perlu me-restart server SSH untuk membuat ini berlaku.

/etc/init.d/ sshd restart

Periksa Port Buka

Anda dapat menggunakan perintah berikut untuk melihat port mana yang didengarkan server:

netstat -an |grep DENGARKAN

Anda seharusnya tidak mendengarkan apapun selain port 22, 80, dan mungkin 8443 untuk plesk.

Setup Firewall

Artikel Utama: Menggunakan Iptables di Linux

Anda dapat secara opsional mensetup firewall iptables untuk memblokir lebih banyak koneksi. Misalnya, saya biasanya memblokir akses ke port lain selain dari jaringan kerja saya. Jika Anda memiliki alamat IP dinamis, Anda ingin menghindari pilihan itu.

Jika Anda telah mengikuti semua langkah dalam panduan ini sejauh ini, mungkin Anda juga tidak perlu menambahkan firewall ke dalam campuran, tapi ada baiknya untuk memahami pilihan Anda.

Lihat Juga

  • Menggunakan Iptables di Linux

Referensi

  • Mengoptimalkan server DV Anda( mediatemple.net)
  • XCache