Εικονική φιλοξενία 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.

Περιβάλλον Δοκιμών

  1. OSCentOS 6.5
  2. ΕφαρμογήΔιακομιστής Ιστού Apache
  3. Διεύθυνση IP192.168.0.100
  4. Διεύθυνση IP192.168.0.101
  5. Τομέαςwww.example1.com
  6. Τομέας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. Εδώ σε αυτό το παράδειγμα, Ρυθμίζουμε ενότητες εικονικού κεντρικού υπολογιστή για δύο τομείς

  1. www.example1.com
  2. 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, ακολουθήστε τον παρακάτω οδηγό, που θα σας βοηθήσει στη δημιουργία.

  1. Δημιουργήστε πολλές διευθύνσεις 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, τότε διαβάστε το άρθρο μας που καθοδηγεί.

  1. 13 Συμβουλές για την ασφάλεια και τη σκλήρυνση του διακομιστή Web Apache

Σύνδεσμοι αναφοράς

Τεκμηρίωση εικονικού κεντρικού υπολογιστή Apache

Θα έρθω ξανά με μερικές άλλες συμβουλές και κόλπα Apache στα μελλοντικά μου άρθρα, μέχρι τότε μείνετε Geeky και συνδεδεμένοι με το linux-console.net. Μην ξεχάσετε να αφήσετε τις προτάσεις σας σχετικά με το άρθρο στην παρακάτω ενότητα σχολίων.