PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VirtualHost-Problem [apache2]



clumsy
22.10.03, 22:56
Hallo,

ich will auf meinem Server mehrere Webseiten gleichzeitig hosten....also dachte ich, dass ich sowas mit VHosts mache...

Ich nutze einen dyndns.org-Service. Dort habe ich die Option "Enable Wildcard" aktiviert. Der Name lautet clumsy.is-a-geek.net.
Ping auf clumsy.is-a-geek.net funktioniert ebenso wie auf alles andere der Art
"ping irgendwas.clumsy.is-a-geek.net".

Ich nutze Apache2 und meine Vhosts.conf sieht so aus:


<VirtualHost test.clumsy.is-a-geek.net>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html_ORG
ServerName test.clumsy.is-a-geek.net
</VirtualHost>


Die /etc/hosts sieht so aus:


127.0.0.1 localhost.localdomain localhost
192.168.16.2 muffel.lan muffel


Wenn ich im Browser http://clumsy.is-a-geek.net aufrufe natürlich kein Problem....wenn ich aber http://test.clumsy.is-a-geek.net oder http://irgendwas.clumsy.is-a-geek.net aufrufe, kommt immer die "normale" clumsy.is-a-geek.net Seite!!!!!

Warum?? Was mach ich falsch?

Danke für Eure Hilfe....
clumsy

clumsy
23.10.03, 07:20
Hab grad bemerkt, dass wenn ich in der /etc/hosts

0.0.0.0 clumsy.is-a-geek.net
reinschreib, dass dass manche Dienste erst funktionieren.....wie mein Jabber-Server....

Was bringt dieser Eintrag genau?? Dass clumsy.is-a-geek.net doch über den Default-Gateway aufgelöst wird oder nicht??

clumsy

chr
23.10.03, 10:51
die apache vhosts haben eigentlich nicht wirklich was mit dns zu tun, apache nimmt afaik nur den http request entsprechend auseinander.

http://bubu.chr.homelinux.net/papers/apache-vhosts.html sollte dir eigentlich weiterhelfen.

RichieX
23.10.03, 11:11
Deine httpd.conf sollte ungefähr so aussehen:



NameVirtualHost *

<VirtualHost *>
...
ServerName clumsy.is-a-geek.net
...
</VirtualHost>

<VirtualHost *>
...
ServerName test.clumsy.is-a-geek.net
...
</VirtualHost>


RichieX

clumsy
23.10.03, 12:00
NameVirtualHost *
<VirtualHost *>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html
ServerName clumsy.is-a-geek.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>

<VirtualHost test.clumsy.is-a-geek.net>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html_ORG2
ServerName test.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/test_error_log
</VirtualHost>


Wenn "NameVirtualHost einkommentiert ist, passiert etwas seltsames: http://clumsy.is-a-geek.net geht nicht, nur https://clumsy.is-a-geek.net...ebenso, wenn ich irgendwas davor schreib wie blabla.clumsy.is-a-geek.net....

Kann es an meinem Firewallrechner (IPcop 1.3) liegen, der Anfragen an Port 80 an diesen weiterleitet?!

clumsy

RichieX
23.10.03, 12:15
Wie schon chr schreibt, haben VHosts nichts mit DNS, IP oder sonst was zu tun, sondern nur mit dem HTML-Protokoll. Du solltest sicherstellen, das der Client, den Du verwendest HTML 1.1 unterstützt.

Versuche mal die zwei Einträge umzudrehen, also erst test.... und dann den VHost mit nichts vorn dran.

edit: Du hast auch einen Fehler beim test-VHost:


<VirtualHost *>

nicht:


<VirtualHost test....>



RichieX

clumsy
23.10.03, 14:20
so...geht jetzt überhaupt nichts mit folgender Konfig:

<VirtualHost *>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html_ORG2
ServerName test.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/test_error_log
</VirtualHost>

<VirtualHost clumsy.is-a-geek.net>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html
ServerName clumsy.is-a-geek.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>

Wenn ich noch NameVirtualHost * dazuschreib, geht gar nix mehr auf http, sondern nur noch per https.

clumsy
23.10.03, 16:22
Ich weiss jetzt, warum es nicht geht....
Mein Server, auf dem die Webseiten liegen befindet sich in der DMZ hinter einem IPCop-Firewallrechner, der alle Anfragen auf Port 80 an die IP meines Servers weiterleitet (192.168.16.2).

Dadurch bringt es nix, wenn ich in die vhosts.conf bei "NameVirtualHost" clumsy.is-a-geek.net oder test.clumsy.is-a-geek.net reinschreib, weil Apache prüft, ob NameVirtualHost mit irgendeinem <VirtualHost blabla> Block übereinstimmt.
blabla sollte dann gleich sein wie NameVirtualHost.
Er wird nie eine Übereinstimmung finden, weil die clumsy...net-IP beim Portforwarding ersetzt wird durch 192.168.16.2!!!


Weiss jemand, wie ich das dennoch hinbekomme?? Muss ich das statt "Name-Based-Virtual Hosts" "IP-Based-VH" hernehmen?? Wenn ja, muss ich virtuelle Netzwerkkarten einrichten...wie mach ich das?

clumsy

mdkuser
12.01.04, 12:51
Mich würde auch mal interessieren, wie man das hinkriegt, dass man trotzdem mehrere virtuelle hosts anbieten kann auch wenn man in einer dmz hinter einer fw liegt. Hat jemand dafür schon eine Lösung gefunden?

clumsy
12.01.04, 13:13
Habs schon seit ner Weile hinbekommen....
Meine Netzwerktopologie hat sich mittlerweile geändert...

Mein Server in der DMZ nutzt das Programm "update-dyndns" um meinen Dyndns-Dienst auf dem laufenden zu halten.
Meine Vhosts.conf sieht so aus:



NameVirtualHost 192.168.1.3:80
NameVirtualHost 192.168.1.3:443

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/main
ServerName clumsy.is-a-geek.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/phpSysInfo
ServerName phpSysInfo.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/phpSysInfo_error_log
</VirtualHost>

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/phpMyAdmin
ServerName phpMyAdmin.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/phpMyAdmin_error_log
</VirtualHost>


<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/typo3/
ServerName typo3.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/typo3_error_log
</VirtualHost>

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/webmail
ServerName webmail.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/webmail_error_log
</VirtualHost>

<VirtualHost 192.168.1.3:443>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/webmail
ServerName webmail.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/webmail_error_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSL v2:+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
</VirtualHost>

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@clumsy.is-a-geek.net
DocumentRoot /var/www/html/wohnheim
ServerName wohnheim.clumsy.is-a-geek.net
ErrorLog /var/log/httpd/wohnheim_error_log
</VirtualHost>


Funktioniert einwandfrei :)

clumsy

mdkuser
12.01.04, 14:04
Und wo ist da der Unterschied zu deiner voherigen Konfig? Irgendwie erkenne ich keinen besonderen Unterschied.
Das Problem ist doch, dass der Router die Anfrage auf eine lokale Adresse umleitet und der hostheadername dabei nicht mit transportiert wird. test.dyndns.org wird genauso auf 192.168.1.5:80 geleitet wie auch subdomain.test.dyndns.org.
Ich komme bei mir immer auf die gleiche Seite...
Kannst Du die Konfiguration noch genauer erklären?
Danke!

clumsy
12.01.04, 14:21
alle Anfragen auf Port 80 werden auf meinen (web)Server weitergeleitet, egal mit was für ner Domain...

Der Apache unterscheidet dann nach seiner Vhosts-Konfiguration,welche Seite er anzeigt.

Du musst beim Dyndns-Anbieter Wildcards aktiviert haben. Dein dyndns-client sollte das übrigens auch können (ist eigentlich standard).

Poste doch mal deine Konfig, dann schaun wir mal, was falsch läuft :)

clumsy

EDIT:
Mein Servername in der httpd2.conf ist gleich dem domainnamen "clumsy.is-a-geek.net"

mdkuser
12.01.04, 15:18
wenn wildcards enabled sind, dann funzt es, obwohl alle anfragen in eine lokale ip umgewandelt, also genattet werden? Dann probiere ich das mal. ich brauch jedenfalls eine subdomain mit wildcards.

Sykane
16.03.04, 17:20
hmm, also mein Router unterstützt DynDNS und auch Wildcards (was auch immer das sein mag)..
habe die COnfig mal ein wenig angepasst aber irgendwie funtzt das nicht so wie es soll.. habe auch den Port 443 freigegeben...

Meine Config:
NameVirtualHost 192.168.1.3:80
NameVirtualHost 192.168.1.3:443

<VirtualHost 192.168.2.137:80>
ServerAdmin Sykane@gmx.de
DocumentRoot /var/www/html
ServerName xxx1.homeftp.org
ErrorLog /var/log/httpd/error_log
</VirtualHost>

<VirtualHost 192.168.2.137:443>
ServerAdmin baggio_81@gmx.de
DocumentRoot /var/www/robert
ServerName xxx2.homeftp.org
ErrorLog /var/log/httpd/error_log
</VirtualHost>

Sykane
16.03.04, 18:57
help

Bubble
16.03.04, 19:11
Was geht denn nicht? Bzw. wie äußert sich der Fehler?

Sprichst du die VHosts auch jeweils mit dem richtigen Protokoll (HTTP bzw. HTTPS) an?
Bubble

Sykane
16.03.04, 19:18
Ich kriege gar keinen zugriff auf die Seite...
xxx1 war vorher mein Standartserver und ist daher immernoch erreichbar..
xxx2 ist allerdings überhaupt nicht erreichbar.

clumsy
16.03.04, 20:08
versuch mal diese config:



NameVirtualHost xxx1.homeftp.org:80
NameVirtualHost xxx1.homeftp.org:443

<VirtualHost xxx1.homeftp.org:80>
ServerAdmin Sykane@gmx.de
DocumentRoot /var/www/html
ServerName xxx1.homeftp.org
ErrorLog /var/log/httpd/error_log
</VirtualHost>


xxx2 hab ich weggelassen, weil:
hast du EINE Domain xxx1.homeftp.org!? xxx2 kann natürlich nur gehen, wenn du dich damit auch bei homeftp.org angemeldet hast...nur zur sicherheit ;)

und schreib wenns nich geht in die /etc/hosts sowas rein:

0.0.0.0 xxx1.homeftp.org

Der Router leitet alle Anfragen auf Port 80 an 192.168.2.137:80 weiter??

Sykane
17.03.04, 14:56
Also... ja Port 80 wird auf die interne IP weitergeleitet!

ich habe 2 Server bei mir einmal den standart server(xxx1 auf port 80) und einen Virtuellen Server(xxx2 auf port 443).
Jetzt wollte ich jeweils über einen andere Dyndns Adresse auf den jeweiligen server zugriff haben (sprich: xxx1.homeftp.org = Standartserver und xxx2.homeftp.org = virtueller server)