Friday, June 23. 2006Wie baue ich mir eine Serverfarm?
Das Problem ist ganz einfach: Auf meinem Kubuntu läuft der Standard-Apache als Webserver. Dieser soll für meine normale Webseitenentwicklung genutzt werden. Will ich aber etwas ausgefalleneres testen, wie zum Beispiel die PHP-Java-Binding, möchte ich diesen Webserver nicht zerschießen. Man könnte diesen zwar anschließend neu installieren, aber dann wäre ja mein kleines Problem, um was es hier geht, kein Problem mehr
Um die einzelnen Webserver auseinander zu halten, werden unterschiedliche Ports verteilt: Der Kubuntu-Apache bekommt bzw. behält den Port 80, der Testserver soll über den Port 10000 angesprochen werden. Lokal läuft bei mir vieles über die Domain falkdoering.de und der IP 127.0.0.1. Nun möchte ich bei der Eingabe von http://kubuntu.falkdoering.de auf den Kubuntu-Server und bei Eingabe von http://testweb.falkdoering.de auf den selbstcompilierten zugreifen. Einfach wäre immer http://localhost/ bzw. http://localhost:10000/ in den Browser einzugeben. Aber auch da wäre je mein Problem schon gelöst.
Als erstes compilieren wir unseren eigenen Webserver. Dieser kommt nach /usr/local/apache2/. Die Standardinstallation ist nach drei schritten bereits getan: ./configure --enable-layout=Apache make make install Diese drei Zeilen installieren den Apachen mit dem Layout Apache nach /usr/local/apache2/. Als nächstes sage ich meinem neuen Indianer, dass er am Port 10000 horchen soll. cd /usr/local/apache2/conf sed -i 's/Listen 80/Listen 10000/' httpd.conf Nun beginnen wir den ersten Test. Dazu starten wir den Apachen. root@defiant:~# cd /usr/local/apache2/bin root@defiant:/usr/local/apache2/bin# ./apachectl start Wenn wir nun im Browser unseres Vertrauens einmal http://localhost/ und einmal http://localhost:10000/ eingeben, sollten zwei unterschiedliche Startseiten erscheinen. Damit wäre der erste Teil abgeschlossen. Kommen wir nun zur restlichen Konfiguration. In der /etc/hosts teile ich meinem Rechner mit, dass er auch auf kubuntu.falkdoering.de und testweb.falkdoering.de hören soll. Dazu ist folgende Zeile sinnvoll: 127.0.0.1 ubuntu.falkdoering.de testweb.falkdoering.de Nach dem speichern sollte man unter den beiden URLs jeweils auf die selbe Seite kommen, die man auch unter der URL http://localhost erhält. Nun kommt der kniffliche Teil. Wie mache ich meinem Kubuntu-Apachen begreiflich, das er sich die Seite von unserem selbsteigenen Apachen holen soll? Meine Wahl fiel auf das Modul mod_proxy. Dieses muss erst aktiviert werden. Da Debiansysteme eine andere Art haben, mit Modulen umzugehen, müssen wir uns erstmal einen Überblick derer verschaffen. root@defiant:/etc/apache2/mods-available# ls -l *proxy* -rw-r--r-- 1 root root 840 2006-05-29 03:55 proxy.conf -rw-r--r-- 1 root root 78 2006-05-29 03:55 proxy_connect.load -rw-r--r-- 1 root root 70 2006-05-29 03:55 proxy_ftp.load -rw-r--r-- 1 root root 72 2006-05-29 03:55 proxy_http.load -rw-r--r-- 1 root root 316 2006-05-29 03:55 proxy.load Die Datei proxy.load sieht schonmal gut aus. Mit dieser wird das Modul in den Apachen geladen. Merken! Nach einem längeren Blick in die Datei proxy.conf und einem noch längeren in das Manual vom Apache zeigt sich, dass wir einen Reverse Proxy einrichten sollten. Die URL testweb.falkdoering.de läuft zwar anschließend über den Kubuntu-Apachen (ist ja nicht ganz ungewollt), die Daten werden aber vom selbstcompilierten Webserver geholt. Um also frisch an die Arbeit zu gehen, laden wir erstmal das Proxy-Modul bei Kubuntu-Apachen-Start: root@defiant:~$ cd /etc/apache2/mods-enabled/ root@defiant:/etc/apache2/mods-enabled$ ln -s /etc/apache2/mods-available/proxy.load ./proxy.load Und nun schreiben wir uns eine Konfigurationsdatei: root@defiant:~$ cd /etc/apache2/sites-available/ root@defiant:/etc/apache2/sites-available/$ vi testweb.falkdoering.de 1 2 <VirtualHost 127.0.0.1:80> 3 4 ServerAdmin webmaster@localhost 5 ServerName testweb.falkdoering.de 6 7 DocumentRoot /var/www/ 8 9 ErrorLog /var/log/apache2/testweb.falkdoering.de-error.log 10 CustomLog /var/log/apache2/testweb.falkdoering.de-access.log combined 11 HostnameLookups Off 12 13 # needed for named virtual hosts 14 UseCanonicalName On 15 16 # configures the footer on server-generated documents 17 ServerSignature On 18 19 20 ProxyRequests Off 21 22 <Proxy *> 23 Order deny,allow 24 Allow from all 25 </Proxy> 26 27 ProxyPass / http://localhost:10000/ 28 ProxyPassReverse / http://localhost:10000/ 29 ProxyErrorOverride Off 30 31 </VirtualHost> 32 Nachdem wir nun also die Datei erstellt haben, müssen wir diese noch unserem Kubuntu-Apachen bekannt machen: root@defiant:~$ cd /etc/apache2/sites-enabled/ root@defiant:/etc/apache2/sites-enabled$ ln -s /etc/apache2/sites-available/testweb.falkdoering.de ./001-testweb.falkdoering.de Und noch einen Neustart das Apachen nicht vergessen! root@defiant:~$ /etc/init.d/apache2ctl restart Wenn man nun die URL testweb.falkdoering.de in den Browser der ersten Wahl eintippt, müsste nun die Standardseite des selbstcompilierten Apachen zu sehen sein. Wenn ein Error 500 kommt, ist der andere Apache vermutlich nicht gestartet oder es ist ein anderer Fehler aufgetreten. In diesem Fall lohnt sich der Blick in das Handbuch zum Indianer. Auf gleiche Art und Weiße kann ich nun Webserver verschiedener Versionen (Apache 1.3 bzw. 2.0 bzw. 2.2) oder Art (lighttpd, Jarkata) ansteuern. Wichtig ist nur, dass jeder einen anderen Port zugewiesen bekommt. Ich kann mich nun also an die Arbeit machen PHP für meinen neuen Apachen zu compilieren. Trackbacks
Trackback specific URI for this entry
No Trackbacks
|
KategorienBlog abonnierenBlog Administration |