12Sep

Προσαρμογή ενός Dedicated Virtual Web Server

Όταν αποκτήσετε έναν ειδικό εικονικό διακομιστή για να εκτελέσετε τον ιστότοπό σας, οι πιθανότητες είναι καλές που έχουν ρυθμιστεί για όλους και δεν είναι προσαρμοσμένες ώστε να μεγιστοποιούν την απόδοση για την εκτέλεση ενός ιστότοπου.

Περιεχόμενα

  • 1 Επισκόπηση
  • 2 Διαμόρφωση Linux
    • 2.1 Απενεργοποίηση DNS
    • 2.2 Απενεργοποίηση SpamAssassain
    • 2.3 Απενεργοποίηση xinetd
    • 2.4 Μέγιστη χρήση μνήμης Plesk
    • 2.5 Απενεργοποίηση ή απενεργοποίηση Plesk( προαιρετικό)
  • 3 Διαμόρφωση MySQL
    • 3.1 Ενεργοποίηση προσωρινής μνήμης ερωτημάτων
    • 3.2 Απενεργοποίηση TCP / IP
  • 4 Διαμόρφωση Apache
  • 5 Διαμόρφωση PHP
    • 5.1 Κατάργηση περιττών PHP λειτουργιών
    • 5.2 PHP Cache Opcode
  • 6 Δημιουργία αντιγράφων ασφαλείας
    • 6.1 Δημιουργία αυτοματοποιημένης δέσμης αντιγράφων ασφαλείας
    • 6.2 Συγχρονισμός αντιγράφων ασφαλείας εκτός χώρου με Rsync
  • 7 Ασφάλεια
    • 7.1 Απενεργοποίηση ρίζαςΣύνδεση πάνω από SSH
    • 7.2 Απενεργοποίηση SSH Έκδοση 1
    • 7.3 Επανεκκίνηση SSH Server
    • 7.4 Έλεγχος για ανοιχτές θύρες
    • 7.5 Ρύθμιση ενός τείχους προστασίας
  • 8 Δείτε επίσης
  • 9 Αναφορές

Επισκόπηση

Υπάρχει ένας αριθμός προβληματικών περιοχών,t για να μεγιστοποιήσετε την απόδοση:

  • Διαμόρφωση Linux
    Συνήθως λειτουργούν υπηρεσίες που δεν χρειάζεται να είναι, σπατάλη μνήμης που θα μπορούσε να χρησιμοποιηθεί για περισσότερες συνδέσεις.
  • Διαμόρφωση MySQL
    Συχνά οι προεπιλεγμένες ρυθμίσεις βασίζονται σε ένα μικρό διακομιστή, μπορούμε να προσθέσουμε μερικές βασικές αλλαγές για να αυξήσουμε την απόδοση πολύ.
  • Διαμόρφωση Apache
    Από προεπιλογή, οι περισσότεροι πάροχοι φιλοξενίας εγκαθιστούν apache με σχεδόν κάθε εγκατεστημένη λειτουργική μονάδα.Δεν υπάρχει κανένας λόγος για φόρτωση ενότητες αν δεν πρόκειται ποτέ να τις χρησιμοποιήσετε.
  • διαμόρφωση PHP
    Η προεπιλεγμένη διαμόρφωση PHP είναι ομοιόμορφα φουσκωμένη, συνήθως υπάρχει ένας τόνος περιττών πρόσθετων ενοτήτων εγκατεστημένων.
  • PHP Cache Opcode
    Αντί να επιτρέπετε στην PHP να επανασυναρμολογήσει τις δέσμες ενεργειών κάθε φορά, μια προσωρινή μνήμη opcode θα αποθηκεύσει προσωρινά τα αποθηκευμένα σενάρια στη μνήμη για τεράστια αύξηση επιδόσεων.
  • Backup
    Θα πρέπει να ρυθμίσετε πιθανώς ορισμένα αυτοματοποιημένα αντίγραφα ασφαλείας, αφού ο πάροχος φιλοξενίας σας δεν πρόκειται να το κάνει για εσάς.Ασφάλεια

  • Σίγουρα, το Linux είναι αρκετά ασφαλές από προεπιλογή, αλλά συνήθως υπάρχουν κάποια προβλήματα ασφάλειας που μπορείτε να διορθώσετε με λίγες γρήγορες ρυθμίσεις.

Διαμόρφωση Linux

Υπάρχει αρκετός αριθμός τσιμπήματα που μπορείτε να κάνετε, τα οποία θα διαφέρουν ελαφρώς ανάλογα με τον διακομιστή που χρησιμοποιείτε.Αυτά τα tweaks είναι για ένα διακομιστή που εκτελεί CentOS, αλλά θα πρέπει να δουλέψουν για την πλειοψηφία των DV servers.

Απενεργοποίηση DNS

Εάν ο παροχέας φιλοξενίας σας χειρίζεται το DNS για τον τομέα σας( πιθανό), τότε μπορείτε να απενεργοποιήσετε την υπηρεσία DNS από την εκτέλεση.

απενεργοποίηση dns /etc/init.d/ με το όνομα stop chmod 644 /etc/init.d/ με όνομα

Η εντολή chmod αφαιρεί την άδεια εκτέλεσης από το σενάριο, σταματώντας να εκτελείται κατά την εκκίνηση.

Απενεργοποίηση του SpamAssassain

Αν δεν χρησιμοποιείτε λογαριασμούς ηλεκτρονικού ταχυδρομείου στον ίδιο τον διακομιστή σας, δεν πρέπει να ενοχλείτε τα εργαλεία αντιμετώπισης ανεπιθύμητης αλληλογραφίας.(Επίσης, πρέπει να ελέγξετε το Google Apps, πολύ καλύτερη λύση ηλεκτρονικού ταχυδρομείου)

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

Απενεργοποίηση xinetd

Η διαδικασία xinetd φιλοξενεί πολλές άλλες διαδικασίες, καμία από τις οποίες δεν είναι χρήσιμη για έναν τυπικό διακομιστή ιστού.

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

Χρήση μνήμης Limit Plesk

Εάν χρησιμοποιείτε τον πίνακα plesk, μπορείτε να τον αναγκάσετε να χρησιμοποιήσετε λιγότερη μνήμη προσθέτοντας ένα αρχείο επιλογών.

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

Προσθέστε τις ακόλουθες γραμμές στο αρχείο:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Σημειώστε ότι αυτή η επιλογή είναι γνωστό ότι λειτουργεί σε διακομιστές MediaTemple DV, αλλά δεν έχει ελεγχθεί σε άλλα.(Ανατρέξτε στις αναφορές)

Απενεργοποίηση ή απενεργοποίηση Plesk( προαιρετικό)

Εάν χρησιμοποιείτε μόνο Plesk μία φορά το χρόνο, δεν υπάρχει λόγος να το αφήσετε να λειτουργήσει καθόλου.Σημειώστε ότι αυτό το βήμα είναι εντελώς προαιρετικό και λίγο πιο προηγμένο.

Εκτελέστε την ακόλουθη εντολή για να απενεργοποιήσετε το plesk:

/etc/init.d/ psa stop

Μπορείτε να την απενεργοποιήσετε από την εκτέλεση κατά την εκκίνηση εκτελώντας την ακόλουθη εντολή:

chmod 644 /etc/init.d/ psa

Σημειώστε ότι αν την απενεργοποιήσετε, τότε δεν μπορείτε να την εκκινήσετε χειροκίνητα χωρίςαλλάζοντας τα δικαιώματα αρχείων πίσω( chmod u + x).

Διαμόρφωση MySQL

Ενεργοποίηση της προσωρινής μνήμης ερωτημάτων

Ανοίξτε το αρχείο my.cnf /etc/ και προσθέστε τις ακόλουθες γραμμές στην ενότητα [mysqld] όπως παρακάτω:

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

προσθέστε περισσότερη μνήμη στην προσωρινή μνήμη ερωτήματος αν θέλετε, αλλά μην χρησιμοποιείτε πάρα πολύ.

Απενεργοποίηση TCP / IP

Ένας εκπληκτικός αριθμός κεντρικών υπολογιστών επιτρέπει την πρόσβαση σε MySQL σε TCP / IP από προεπιλογή, κάτι που δεν έχει νόημα για έναν ιστότοπο.Μπορείτε να υπολογίσετε εάν το mysql ακούει στο TCP / IP εκτελώντας την ακόλουθη εντολή:

netstat -an |grep 3306

Για να απενεργοποιήσετε, προσθέστε την ακόλουθη γραμμή στο αρχείο my.cnf /etc/:

skip-network

Διαμόρφωση Apache

Ανοίξτε το αρχείο httpd.conf που βρίσκεται συχνά στο /etc/httpd/conf/ httpd.conf

Βρείτε τη γραμμή που μοιάζει με αυτή:

Timeout 120

Αλλαγή σε αυτό:

Timeout 20

Τώρα βρείτε την ενότητα που περιλαμβάνει αυτές τις γραμμές και προσαρμόστε σε κάτι παρόμοιο:

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

PHP Ρύθμιση

Ένα από τα πράγματα πουέχετε κατά νου όταν τροποποιείτε ένα διακομιστή στην πλατφόρμα PHP είναι ότι κάθε νήμα apache πρόκειται να φορτώσει PHP σε μια ξεχωριστή θέση στη μνήμη.Αυτό σημαίνει ότι εάν μια μη χρησιμοποιημένη μονάδα προσθέτει 256k μνήμη στην PHP, σε 40 threads apache χάνετε 10MB μνήμης.

Κατάργηση μη απαραίτητων μονάδων PHP

Θα χρειαστεί να εντοπίσετε το αρχείο php.ini, το οποίο συνήθως βρίσκεται στο php.ini /etc/( Σημειώστε ότι σε ορισμένες διανομές θα υπάρχει ένας κατάλογος /etc/php.d/ με έναν αριθμό αρχείων. ini, ένας γιακάθε δομοστοιχείο

Σχολιάστε τυχόν γραμμές φόρτωσης με αυτές τις μονάδες:

  • odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • φορτιστής ιόντων
  • json
  • imap
  • ldap
  • ncurses

Todo: Προσθέστε περισσότερες πληροφορίες εδώ

PHP Opcode Cache

είναι μια σειρά από κρυφές μνήμες opcode που μπορείτε να χρησιμοποιήσετε, συμπεριλαμβανομένων των APC, eAccelerator και Xcache, το τελευταίο είναι προσωπική μου προτίμηση λόγω σταθερότητας

Κάντε λήψη του xcache και εξαγάγετε τον σε έναν κατάλογο και, στη συνέχεια, εκτελέστε τις ακόλουθες εντολές από την πηγή xcacheκατάλογος:

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

Ανοίξτε το αρχείο php.ini καιπροσθέστε μια νέα ενότητα για το xcache.Θα χρειαστεί να προσαρμόσετε τις διαδρομές εάν τα modules php σας φορτωθούν από κάπου αλλού.

vi /etc/ php.ini

Προσθέστε την ακόλουθη ενότητα στο αρχείο:

[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];Αλλάξτε το xcache.size για να συντονιστείτε το μέγεθος της προσωρινής μνήμης opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Αλλάξτε το xcache.var_size για να προσαρμόσετε το μέγεθος της μεταβλητής cache 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 = Απενεργοποίηση xcache.readonly_protection =Στο xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Σε xcache.stat = Σε xcache.optimizer = Απενεργοποιημένο

Todo: Πρέπει να επεκτείνετε αυτό το bit και να συνδεθείτε στο xcache στις αναφορές.

Backup

Υπάρχει πολύ λίγο πιο σημαντικό από το να έχετε αυτοματοποιημένα αντίγραφα ασφαλείας του ιστότοπού σας.Μπορεί να έχετε τη δυνατότητα να δημιουργήσετε αντίγραφα ασφαλείας από τον παροχέα φιλοξενίας, τα οποία είναι επίσης πολύ χρήσιμα, αλλά προτιμώ να έχετε και αυτοματοποιημένα αντίγραφα ασφαλείας.

Δημιουργία αυτοματοποιημένης δέσμης αντιγράφων ασφαλείας

Ξεκινώ συνήθως δημιουργώντας ένα / backups κατάλογο, με έναν κατάλογο αρχείων /backups/ κάτω από αυτό.Μπορείτε να προσαρμόσετε αυτές τις διαδρομές, αν θέλετε.

mkdir -p /backups/ αρχεία

Δημιουργήστε τώρα ένα αρχείο backup.sh μέσα στον κατάλογο αντιγράφων ασφαλείας:

vi /backups/ backup.sh

Προσθέστε τα ακόλουθα στο αρχείο, προσαρμόζοντας τις διαδρομές και τον κωδικό mysqldump όπως είναι απαραίτητο:

#!/bin/ sh THEDATE = 'ημερομηνία +% d% m% y% H% M` mysqldump -uadmin -password 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 βρείτε τον ιστότοπο /backups/files/ * -mtime +5 -exec rm{ } \;βρείτε /backups/files/ db * -mtime +5 -exec rm{ } \;

Η δέσμη ενεργειών θα δημιουργήσει πρώτα μια μεταβλητή ημερομηνίας, ώστε όλα τα αρχεία να ονομάζονται τα ίδια για ένα μόνο αντίγραφο ασφαλείας, στη συνέχεια να απορρίψουν τη βάση δεδομένων, να καταγράψουν τα αρχεία ιστού και να τα βρει.Οι εντολές εύρεσης χρησιμοποιούνται για την κατάργηση όλων των αρχείων παλαιότερων από 5 ημέρες, αφού δεν θέλετε να εξαντληθεί η μονάδα δίσκου σας.

Κάντε τη δέσμη ενεργειών εκτελέσιμη εκτελώντας την ακόλουθη εντολή:

chmod u + x /backups/ backup.sh

Επόμενη θα πρέπει να την εκχωρήσετε για αυτόματη εκτέλεση από το cron.Βεβαιωθείτε ότι χρησιμοποιείτε έναν λογαριασμό που έχει πρόσβαση στον κατάλογο αντιγράφων ασφαλείας.

crontab -e

Προσθέστε την ακόλουθη γραμμή στο crontab:

1 1 * * * /backups/ backup.sh

Μπορείτε να δοκιμάσετε τη δέσμη ενεργειών μπροστά από το χρόνο, εκτελώντας την κατά τη σύνδεση στο λογαριασμό χρήστη.(Συνήθως τρέχω τα αντίγραφα ασφαλείας ως root)

Backup Sync εκτός τόπου με το Rsync

Τώρα που έχετε δημιουργήσει αυτοματοποιημένα αντίγραφα ασφαλείας του διακομιστή σας, μπορείτε να τα συγχρονίσετε κάπου αλλού χρησιμοποιώντας το βοηθητικό πρόγραμμα rsync.Θα χρειαστεί να διαβάσετε αυτό το άρθρο σχετικά με τον τρόπο ρύθμισης των πλήκτρων ssh για την αυτόματη σύνδεση: Προσθέστε το δημόσιο κλειδί SSH στον απομακρυσμένο διακομιστή σε μια ενιαία εντολή

Μπορείτε να το δοκιμάσετε τρέχοντας αυτή την εντολή σε ένα linux ή Mac σε άλλη θέσηέχεις ένα διακομιστή linux στο σπίτι, όπου τρέχω αυτό)

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

Αυτό θα πάρει αρκετό διάστημα για να τρέξει για πρώτη φορά, αλλά στο τέλος ο τοπικός σας υπολογιστής πρέπει να έχει ένα αντίγραφοτου αρχείου καταλόγου αρχείων στον κατάλογο /offsitebackups/.(Βεβαιωθείτε ότι έχετε δημιουργήσει αυτόν τον κατάλογο πριν εκτελέσετε το σενάριο)

Μπορείτε να προγραμματίσετε αυτό προσθέτοντάς το σε μια γραμμή crontab:

crontab -e

Προσθέστε την ακόλουθη γραμμή, η οποία θα εκτελεί rsync κάθε ώρα στο σημάδι 45 λεπτών.Θα παρατηρήσετε ότι χρησιμοποιούμε την πλήρη διαδρομή στο rsync εδώ.

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

Θα μπορούσατε να προγραμματίσετε να εκτελείται σε άλλη χρονική στιγμή ή μόνο μία φορά την ημέρα.Αυτό εξαρτάται από εσάς.

Σημειώστε ότι υπάρχουν πολλά βοηθητικά προγράμματα που θα σας επιτρέψουν να συγχρονίσετε μέσω ssh ή ftp.Δεν χρειάζεται να χρησιμοποιήσετε το rsync.Ασφάλεια

Το πρώτο πράγμα που θέλετε να κάνετε είναι να βεβαιωθείτε ότι έχετε έναν κανονικό λογαριασμό χρήστη για χρήση μέσω του ssh και βεβαιωθείτε ότι μπορείτε να χρησιμοποιήσετε το su για να μεταβείτε στη ρίζα.Είναι πολύ κακή ιδέα να επιτρέπετε την άμεση σύνδεση για τη ρίζα μέσω του ssh.

Απενεργοποίηση σύνδεσης ρίζας μέσω SSH

Επεξεργαστείτε το αρχείο /etc/ssh/ sshd_config και αναζητήστε την ακόλουθη γραμμή:

#PermitRootLogin ναι

Αλλαγή της γραμμής για να μοιάζει με αυτή:

PermitRootLogin όχι

Βεβαιωθείτε ότι έχετε έναν κανονικό λογαριασμό χρήστη και μπορείτε να το κάνετερίζας προτού πραγματοποιήσετε αυτήν την αλλαγή, διαφορετικά ενδέχεται να κλειδώσετε τον εαυτό σας έξω.

Απενεργοποίηση SSH Έκδοση 1

Δεν υπάρχει κανένας λόγος να χρησιμοποιήσετε οτιδήποτε άλλο εκτός από την έκδοση SSH 2, καθώς είναι πιο ασφαλής από τις προηγούμενες εκδόσεις.Επεξεργαστείτε το αρχείο /etc/ssh/ sshd_config και αναζητήστε την ακόλουθη ενότητα:

# Πρωτόκολλο 2,1 Πρωτόκολλο 2

Βεβαιωθείτε ότι χρησιμοποιείτε το πρωτόκολλο 2 μόνο όπως φαίνεται.

Επανεκκίνηση του διακομιστή SSH

Τώρα θα χρειαστεί να κάνετε επανεκκίνηση του διακομιστή SSH για να γίνει αυτό το αποτέλεσμα.

/etc/init.d/ επανεκκίνηση

Έλεγχος για ανοιχτές θύρες

Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να δείτε τις θύρες στις οποίες ο διακομιστής ακούει:

netstat -an |grep LISTEN

Πραγματικά δεν πρέπει να έχετε τίποτα άλλο από τις θύρες 22, 80, και ενδεχομένως 8443 για το plesk.

Εγκατάσταση ενός τείχους προστασίας

Κύριο άρθρο: Χρήση του Iptables σε Linux

Μπορείτε να ρυθμίσετε προαιρετικά ένα τείχος προστασίας iptables για να αποκλείσετε περισσότερες συνδέσεις.Για παράδειγμα, συνήθως αποκλείω την πρόσβαση σε άλλες θύρες εκτός από το δίκτυο εργασίας μου.Εάν έχετε μια δυναμική διεύθυνση IP, θα θέλετε να αποφύγετε αυτήν την επιλογή.

Αν έχετε ήδη ακολουθήσει όλα τα βήματα σε αυτόν τον οδηγό μέχρι τώρα, ίσως δεν είναι απαραίτητο να προσθέσετε ένα τείχος προστασίας στο μίγμα, αλλά είναι καλό να κατανοήσετε τις επιλογές σας.

Δείτε επίσης

  • Χρήση Iptables σε Linux

Αναφορές

  • Βελτιστοποίηση του διακομιστή DV σας( medatemple.net)
  • XCache