Εικονική φιλοξενία Apache: Εικονικοί κεντρικοί υπολογιστές με βάση IP και όνομα σε RHEL/CentOS/Fedora
Όπως όλοι γνωρίζουμε ότι ο Apache είναι ένας πολύ ισχυρός, εξαιρετικά ευέλικτος και διαμορφώσιμος διακομιστής Web για Nix OS. Εδώ, σε αυτό το σεμινάριο, θα συζητήσουμε μια ακόμη δυνατότητα του Apache που μας επιτρέπει να φιλοξενούμε περισσότερους από έναν ιστότοπους σε ένα μόνο μηχάνημα Linux. Η εφαρμογή εικονικής φιλοξενίας με τον διακομιστή ιστού Apache μπορεί να σας βοηθήσει να εξοικονομήσετε κόστος που επενδύετε για τη συντήρηση του διακομιστή σας και τη διαχείρισή τους.
Η έννοια της Κοινόχρηστης φιλοξενίας ιστού και της φιλοξενίας ιστού μεταπωλητή βασίζεται σε αυτήν τη δυνατότητα μόνο του Apache.
Τύποι εικονικού κεντρικού υπολογιστή
Υπάρχουν δύο τύποι εικονικής φιλοξενίας που διατίθεται με το Apache.
Εικονική φιλοξενία με βάση το όνομα
Με την εικονική φιλοξενία βάσει ονόματος, μπορείτε να φιλοξενήσετε πολλούς τομείς/ιστοτόπους σε ένα μόνο μηχάνημα με μία IP. Όλοι οι τομείς σε αυτόν τον διακομιστή θα μοιράζονται μία μόνο IP. Είναι πιο εύκολο να διαμορφωθεί από την εικονική φιλοξενία που βασίζεται σε IP, χρειάζεται μόνο να διαμορφώσετε το DNS του τομέα για να τον αντιστοιχίσετε με τη σωστή διεύθυνση IP και, στη συνέχεια, να ρυθμίσετε το Apache ώστε να τον αναγνωρίζει με τα ονόματα τομέα.
Εικονική φιλοξενία βασισμένη σε IP
Με την εικονική φιλοξενία που βασίζεται σε IP, μπορείτε να εκχωρήσετε μια ξεχωριστή IP για κάθε τομέα σε έναν μόνο διακομιστή, αυτές οι IP μπορούν να προσαρτηθούν στον διακομιστή με μεμονωμένες κάρτες NIC και με πολλαπλά NIC.
Ας ρυθμίσουμε την Εικονική φιλοξενία βάσει ονόματος και την Εικονική φιλοξενία βάσει IP σε RHEL, CentOS και Fedora.
Περιβάλλον Δοκιμών
- OS – CentOS 6.5
- Εφαρμογή – Διακομιστής Ιστού Apache
- Διεύθυνση IP – 192.168.0.100
- Διεύθυνση IP – 192.168.0.101
- Τομέας – www.example1.com
- Τομέας – www.example2.com
Πώς να ρυθμίσετε εικονικούς κεντρικούς υπολογιστές Apache με βάση IP και όνομα
Πριν ρυθμίσετε την εικονική φιλοξενία με το Apache, το σύστημά σας πρέπει να έχει εγκατεστημένο λογισμικό Apache Web. Εάν όχι, εγκαταστήστε το χρησιμοποιώντας το προεπιλεγμένο πρόγραμμα εγκατάστασης πακέτων που ονομάζεται yum.
[ ~]# yum install httpd
Ρύθμιση εικονικού κεντρικού υπολογιστή βάσει ονόματος
Ωστόσο, πριν δημιουργήσετε έναν εικονικό κεντρικό υπολογιστή, πρέπει να δημιουργήσετε έναν κατάλογο όπου θα διατηρείτε όλα τα αρχεία του ιστότοπού σας. Επομένως, δημιουργήστε καταλόγους για αυτούς τους δύο εικονικούς κεντρικούς υπολογιστές στον φάκελο /var/www/html. Να θυμάστε ότι το /var/www/html θα είναι η προεπιλεγμένη Ρίζα εγγράφου στην εικονική διαμόρφωση του Apache.
[ ~]# mkdir /var/www/html/example1.com/ [ ~]# mkdir /var/www/html/example2.com/
Για να ρυθμίσετε την εικονική φιλοξενία βάσει ονόματος, πρέπει να πείτε στον Apache ποια IP θα χρησιμοποιείτε για να λαμβάνετε τα αιτήματα Apache για όλους τους ιστότοπους ή τα ονόματα τομέα. Μπορούμε να το κάνουμε αυτό με την οδηγία NameVirtualHost. Ανοίξτε το κύριο αρχείο διαμόρφωσης του Apache με το πρόγραμμα επεξεργασίας VI.
[ ~]# vi /etc/httpd/conf/httpd.conf
Αναζητήστε για NameVirtualHost και καταργήστε το σχόλιο αυτής της γραμμής, αφαιρώντας το σύμβολο # μπροστά της.
NameVirtualHost
Στη συνέχεια, προσθέστε την IP με πιθανή την οποία θέλετε να λαμβάνετε αιτήματα Apache. Μετά τις αλλαγές, το αρχείο σας θα πρέπει να μοιάζει με αυτό:
NameVirtualHost 192.168.0.100:80
Τώρα, ήρθε η ώρα να ρυθμίσετε τις ενότητες εικονικού κεντρικού υπολογιστή για τους τομείς σας, μετακινηθείτε στο κάτω μέρος του αρχείου πατώντας Shift + G. Εδώ σε αυτό το παράδειγμα, Ρυθμίζουμε ενότητες εικονικού κεντρικού υπολογιστή για δύο τομείς
- www.example1.com
- www.example2.com
Προσθέστε τις ακόλουθες δύο εικονικές οδηγίες στο κάτω μέρος του αρχείου. Αποθηκεύστε και κλείστε το αρχείο.
<VirtualHost 192.168.0.100:80> ServerAdmin DocumentRoot /var/www/html/example1.com ServerName www.example1.com ErrorLog logs/www.example1.com-error_log CustomLog logs/www.example1.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin DocumentRoot /var/www/html/example2.com ServerName www.example2.com ErrorLog logs/www.example2.com-error_log CustomLog logs/www.example2.com-access_log common </VirtualHost>
Είστε ελεύθεροι να προσθέσετε όσες οδηγίες θέλετε να προσθέσετε στην ενότητα εικονικού κεντρικού υπολογιστή των τομέων σας. Όταν τελειώσετε με τις αλλαγές στο αρχείο httpd.conf, ελέγξτε τη σύνταξη των αρχείων με την ακόλουθη εντολή.
[ ~]# httpd -t Syntax OK
Συνιστάται να ελέγχετε τη σύνταξη του αρχείου αφού κάνετε κάποιες αλλαγές και πριν κάνετε επανεκκίνηση του διακομιστή Ιστού, επειδή εάν κάποια σύνταξη πάει στραβά, ο Apache θα αρνηθεί να εργαστεί με κάποια σφάλματα και τελικά θα επηρεάσει τον υπάρχοντα διακομιστή ιστού σας να απενεργοποιηθεί για λίγο. Εάν η σύνταξη είναι OK. Κάντε επανεκκίνηση του διακομιστή Ιστού σας και προσθέστε τον στο chkconfig για να ξεκινήσετε τον διακομιστή ιστού σας στο επίπεδο εκτέλεσης 3 και 5 μόνο κατά την εκκίνηση.
[ ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
[ ~]# chkconfig --level 35 httpd on
Τώρα ήρθε η ώρα να δημιουργήσουμε μια δοκιμαστική σελίδα που ονομάζεται index.html να προσθέσουμε κάποιο περιεχόμενο στο αρχείο, ώστε να έχουμε κάτι να το ελέγξουμε, όταν η IP καλεί τον εικονικό κεντρικό υπολογιστή.
[ ~]# vi /var/www/html/example1.com/index.html
<html> <head> <title>www.example1.com</title> </head> <body> <h1>Hello, Welcome to www.example1.com.</h1> </body> </html>
[ ~]# vi /var/www/html/example2.com/index.html
<html> <head> <title>www.example2.com</title> </head> <body> <h1>Hello, Welcome to www.example2.com.</h1> </body> </html>
Μόλις τελειώσετε με αυτό, μπορείτε να δοκιμάσετε τη ρύθμιση, αποκτώντας πρόσβαση και στους δύο τομείς σε ένα πρόγραμμα περιήγησης.
http://www.example1.com http://www.example2.com
Προεπισκόπηση: www.example1.com
Προεπισκόπηση: www.example2.com
Ρύθμιση εικονικής φιλοξενίας Linux που βασίζεται σε IP
Για να ρυθμίσετε την εικονική φιλοξενία βάσει IP, πρέπει να έχετε περισσότερες από μία διεύθυνση IP/Θύρα που έχουν εκχωρηθεί στον διακομιστή σας ή στον υπολογιστή σας Linux.
Μπορεί να βρίσκεται σε μία μόνο κάρτα NIC , Για παράδειγμα: eth0:1, eth0:2, eth0:3 … ούτω καθεξής. Μπορούν επίσης να επισυναφθούν πολλές κάρτες NIC. Εάν δεν ξέρετε πώς να δημιουργήσετε πολλαπλές IP σε ένα NIC, ακολουθήστε τον παρακάτω οδηγό, που θα σας βοηθήσει στη δημιουργία.
- Δημιουργήστε πολλές διευθύνσεις IP σε μία ενιαία διεπαφή δικτύου
Σκοπός της υλοποίησης εικονικής φιλοξενίας βάσει IP είναι η ανάθεση εφαρμογής για κάθε τομέα και η συγκεκριμένη IP δεν θα χρησιμοποιηθεί από κανέναν άλλο τομέα.
Αυτό το είδος ρύθμισης απαιτείται όταν ένας ιστότοπος εκτελείται με πιστοποιητικό SSL (mod_ssl) ή σε διαφορετικές θύρες και IP. Και μπορείτε επίσης να εκτελέσετε πολλές παρουσίες του Apache σε ένα μόνο μηχάνημα. Για να ελέγξετε τις συνδεδεμένες IP στον διακομιστή σας, ελέγξτε το χρησιμοποιώντας την εντολή ifconfig.
~]# ifconfig
Δείγμα εξόδου
eth0 Link encap:Ethernet HWaddr 08:00:27:4C:EB:CE inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe4c:ebce/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17550 errors:0 dropped:0 overruns:0 frame:0 TX packets:15120 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:16565983 (15.7 MiB) TX bytes:2409604 (2.2 MiB) eth0:1 Link encap:Ethernet HWaddr 08:00:27:4C:EB:CE inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1775 errors:0 dropped:0 overruns:0 frame:0 TX packets:1775 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3416104 (3.2 MiB) TX bytes:3416104 (3.2 MiB)
Όπως μπορείτε να δείτε στην παραπάνω έξοδο, δύο IP 192.168.0.100 (eth0) και 192.168.0.101 (eth0:1) είναι συνδεδεμένο στον διακομιστή, και οι δύο IP εκχωρούνται στην ίδια φυσική συσκευή δικτύου (eth0).
Τώρα, εκχωρήστε μια συγκεκριμένη IP/Θύρα για να λαμβάνετε αιτήματα http, μπορείτε απλώς να το κάνετε αλλάζοντας την οδηγία Listen στο httpd.conf αρχείο.
[ ~]# vi /etc/httpd/conf/httpd.conf
Αναζήτηση για τη λέξη \Listen, Βρίσκετε μια ενότητα όπου είναι γραμμένη η σύντομη περιγραφή σχετικά με την οδηγία Listen. Σε αυτήν την ενότητα, σχολιάστε την αρχική γραμμή και γράψτε τη δική σας οδηγία κάτω από αυτήν τη γραμμή.
# Listen 80 Listen 192.168.0.100:80
Τώρα, δημιουργήστε μια ενότητα εικονικού κεντρικού υπολογιστή και για τους δύο τομείς. Μεταβείτε στο κάτω μέρος του αρχείου και προσθέστε τις παρακάτω εικονικές οδηγίες.
<VirtualHost 192.168.0.100:80> ServerAdmin DocumentRoot /var/www/html/example1 ServerName www.example1.com ErrorLog logs/www.example1.com-error_log TransferLog logs/www.example1.com-access_log </VirtualHost> <VirtualHost 192.168.0.101:80> ServerAdmin DocumentRoot /var/www/html/example2 ServerName www.example2.com ErrorLog logs/www.example2.com-error_log TransferLog logs/www.example2.com-access_log </VirtualHost>
Τώρα, αφού έχετε τροποποιήσει το κύριο αρχείο conf Apache, πρέπει να επανεκκινήσετε την υπηρεσία http όπως παρακάτω.
[ ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
Δοκιμάστε τη ρύθμιση της εικονικής φιλοξενίας βάσει IP, μεταβαίνοντας στις URL στο πρόγραμμα περιήγησης ιστού, όπως φαίνεται παρακάτω.
http://www.example1.com http://www.example2.com
Αυτά είναι όλα με τον εικονικό οικοδεσπότη Apache σήμερα. Εάν θέλετε να ασφαλίσετε και να σκληρύνετε τη διαμόρφωση του Apache, τότε διαβάστε το άρθρο μας που καθοδηγεί.
- 13 Συμβουλές για την ασφάλεια και τη σκλήρυνση του διακομιστή Web Apache
Σύνδεσμοι αναφοράς
Τεκμηρίωση εικονικού κεντρικού υπολογιστή Apache
Θα έρθω ξανά με μερικές άλλες συμβουλές και κόλπα Apache στα μελλοντικά μου άρθρα, μέχρι τότε μείνετε Geeky και συνδεδεμένοι με το linux-console.net. Μην ξεχάσετε να αφήσετε τις προτάσεις σας σχετικά με το άρθρο στην παρακάτω ενότητα σχολίων.