If-Koubou

Tweak Server Web Virtual Khusus

Tweak Server Web Virtual Khusus (Bagaimana caranya)

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

Isi

[menyembunyikan]

  • 1 Ikhtisar
  • 2 Linux Configuration
    • 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 Mengaktifkan Cache Queri
    • 3.2 Nonaktifkan TCP / IP
  • 4 Konfigurasi Apache
  • 5 Konfigurasi PHP
    • 5.1 Hapus Modul PHP yang Tidak Diperlukan
    • 5.2 Cache Kode Opsional PHP
  • 6 Pencadangan
    • 6.1 Buat Script Backup Otomatis
    • 6.2 Sinkronisasi Cadangan Di Luar Situs Dengan Rsync
  • 7 Keamanan
    • 7.1 Nonaktifkan Login Root Lebih dari SSH
    • 7.2 Nonaktifkan SSH Versi 1
    • 7.3 Restart SSH Server
    • 7.4 Periksa Port Terbuka
    • 7.5 Mengatur Firewall
  • 8 Lihat Juga
  • 9 Referensi

Ikhtisar

Ada sejumlah area masalah di mana kami ingin memaksimalkan kinerja:

  • Konfigurasi Linux
    Biasanya ada layanan berjalan yang tidak perlu, membuang memori yang dapat digunakan untuk koneksi lebih banyak.
  • Konfigurasi MySQL
    Seringkali pengaturan default didasarkan pada server kecil, kita dapat menambahkan beberapa perubahan kunci untuk meningkatkan kinerja yang besar.
  • Konfigurasi Apache
    Secara default kebanyakan penyedia hosting menginstal apache dengan hampir setiap modul yang diinstal. Tidak ada alasan untuk memuat modul jika Anda tidak akan menggunakannya.
  • Konfigurasi PHP
    Konfigurasi PHP default juga sama-sama membengkak, biasanya ada satu ton modul tambahan yang tidak perlu terpasang.
  • PHP Opcode Cache
    Alih-alih memungkinkan PHP mengkompilasi ulang skrip setiap saat, cache opcode akan meng-cache skrip yang dikompilasi dalam memori untuk peningkatan kinerja yang sangat besar.
  • Backup
    Mungkin harus menyiapkan beberapa cadangan otomatis, karena penyedia hosting Anda tidak akan melakukannya untuk Anda.
  • Keamanan
    Tentu, Linux cukup aman secara default, tetapi 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 pada server yang Anda gunakan. Tweak ini untuk server yang menjalankan CentOS, tetapi 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 dari berjalan.

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

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 jauh lebih baik)

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

Nonaktifkan xinetd

Proses xinetd memiliki sejumlah proses lain, 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 opsi.

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 berfungsi pada server DV MediaTemple, tetapi belum diperiksa pada yang 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 sepenuhnya opsional, dan sedikit lebih maju.

Jalankan perintah berikut untuk mematikan plesk:

/etc/init.d/psa stop

Anda dapat menonaktifkannya dari berjalan saat startup dengan menjalankan perintah berikut:

chmod 644 /etc/init.d/psa

Perhatikan bahwa jika Anda menonaktifkannya, maka Anda tidak dapat memulai secara manual tanpa mengubah izin file kembali (chmod u + x).

Konfigurasi MySQL

Aktifkan Query Cache

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

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

Anda dapat menambahkan lebih banyak memori ke cache query jika Anda mau, tetapi jangan gunakan terlalu banyak.

Nonaktifkan TCP / IP

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

netstat -an | grep 3306

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

skip-networking

Konfigurasi Apache

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

Temukan garis yang terlihat seperti ini:

Timeout 120

Dan ubah ke ini:

Timeout 20

Sekarang temukan bagian yang mencakup 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 hal yang perlu diingat ketika mengutak-atik server pada platform PHP adalah setiap utas apache akan memuat PHP di lokasi terpisah di memori. Ini berarti jika modul yang tidak digunakan menambahkan 256k memori ke PHP, di 40 thread apache Anda menghabiskan 10MB memori.

Hapus Modul PHP yang Tidak Diperlukan

Anda harus mencari file php.ini Anda, yang biasanya ditemukan di /etc/php.ini (Perhatikan bahwa pada beberapa distribusi, akan ada direktori /etc/php.d/ dengan sejumlah file .ini, satu untuk setiap modul.

Berikan komentar pada setiap baris loadmodule dengan modul-modul ini:

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

Todo: Tambahkan informasi lebih lanjut di sini.

PHP Opcode Cache

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

Unduh xcache dan ekstrak ke dalam direktori, lalu jalankan perintah berikut dari direktori sumber xcache:

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

Buka file php.ini Anda dan tambahkan 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 = Mati xcache.readonly_protection = Pada xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Aktif xcache.stat = Hidup xcache.optimizer = Mati

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

Backup

Ada sangat sedikit lebih penting daripada memiliki backup otomatis dari situs web Anda. Anda mungkin bisa mendapatkan cuplikan cadangan dari penyedia hosting Anda, yang juga sangat berguna, tetapi saya juga lebih suka memiliki cadangan otomatis.

Buat Script Backup Otomatis

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

mkdir -p / backup / 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 jika perlu:

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

Skrip akan membuat variabel tanggal terlebih dahulu sehingga semua file akan diberi nama yang sama untuk satu cadangan, lalu membuang database, mengaitkan file web dan men-gzipnya. Perintah find digunakan untuk menghapus file yang lebih lama 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 agar berjalan secara otomatis dengan 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)

Sinkronisasi Cadangan Di Luar Situs Dengan Rsync

Setelah Anda membuat cadangan otomatis server Anda, Anda bisa menyelaraskannya di tempat lain dengan menggunakan utilitas rsync. Anda akan ingin membaca artikel ini tentang cara men-setup kunci ssh untuk login otomatis: Menambahkan Kunci SSH Publik ke Remote Server dalam Perintah Tunggal

Anda dapat menguji ini dengan menjalankan perintah ini pada linux atau mesin Mac di lokasi lain (saya memiliki server linux di rumah, yang merupakan tempat saya menjalankan ini)

rsync -a [email protected]: / backup / file / * / offsitebackups /

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

Anda dapat menjadwalkannya dengan menambahkannya ke baris crontab:

crontab -e

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

45 * * * * / usr / bin / rsync -a [email protected]: / backup / file / * / offsitebackups /

Anda dapat menjadwalkannya untuk berjalan pada waktu yang berbeda, atau hanya satu kali per hari. Itu terserah Anda.

Perhatikan bahwa ada banyak utilitas yang akan memungkinkan Anda untuk melakukan sinkronisasi melalui ssh atau ftp. Anda tidak harus menggunakan rsync.

Keamanan

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

Nonaktifkan Login Root Lebih dari SSH

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

#PermitRootLogin ya

Ubah baris itu agar terlihat seperti ini:

PermitRootLogin no

Pastikan bahwa Anda memiliki akun pengguna biasa dan dapat su untuk membasmi sebelum Anda membuat perubahan ini, jika tidak Anda mungkin mengunci diri sendiri.

Nonaktifkan SSH Versi 1

Benar-benar tidak ada alasan untuk menggunakan apa pun selain SSH versi 2, karena ini lebih aman daripada versi sebelumnya. Edit file / etc / ssh / sshd_config, dan cari bagian berikut:

Protokol #Protocol 2,1 2

Pastikan Anda hanya menggunakan Protokol 2 seperti yang ditunjukkan.

Restart SSH Server

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

/etc/init.d/sshd restart

Periksa Port Terbuka

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

netstat -an | grep DENGARKAN

Anda benar-benar tidak boleh mendengarkan apa pun selain port 22, 80, dan mungkin 8443 untuk plesk.

Siapkan Firewall

Artikel utama:Menggunakan Iptables di Linux

Anda dapat secara opsional mengatur firewall iptables untuk memblokir lebih banyak koneksi. Sebagai contoh, saya biasanya memblokir akses ke port lain selain dari jaringan kerja saya. Jika Anda memiliki alamat IP dinamis, Anda pasti ingin menghindari opsi itu.

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

Lihat juga

  • Menggunakan Iptables di Linux

Referensi

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