Apache - VHosts - Domain wird auf ersten VHost geleitet

Apache, Lighttpd, nginx, Cherokee
marvet
Posts: 36
Joined: 2006-07-11 10:44

Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by marvet » 2006-12-15 19:35

Hallo zusammen,

ich habe auf einem Debian 3.1 stable den Apache 2.2.3 aus dem Source kompiliert. Als Konfiguration dient die mitgelieferte Standardkonfiguration.

Den Mainserver in der "http.conf" habe ich auf "ServerName http://www.example.com" stehen lassen. Alle weiteren Domains werden über VHosts (Name-Based) administriert.

Nun habe ich folgendes Problem:

Meine IP-Adresse war wohl bis vor Kurzem noch einem anderen Kunden zugewiesen. Dessen Domains zeigen alle auf meine IP-Adresse. Mein Apache lenkt nun jede Domain die auf meine IP-Adresse zeigt, jedoch nicht über "ServerName" oder "ServerAlias" in irgendeinem VHost abgefangen wird, auf den ersten VHost den er in der Konfiguration findet um.

Das sorgt natürlich für reichlich unnnötige Last und vor allem für unerwünschte Verwechslungen.

Wie bekomme ich es denn nun hin, daß der Apache erst garnicht versucht diese Domains zu behandeln, bzw. diese nicht alle auf den gleichen VHost legt.

Mit "ServerName" und "ServerAlias" habe ich in der "httpd.conf" bereits rumgespielt, allerdings ohne den gewünschten Erfolg. Aktuell nutze ich den Workaround, daß mein erster VHost auf eine leeres Verzeichnis als "DocumentRoot" nutzt und zusätzlich über "Order" ein "Deny from All" gesetzt ist. Ist aber nicht wirklich das Wahre.

Vorab vielen Dank für Eure Hilfe!

Beste Grüße
und ein schönes Wochenende,

Markus

rootsvr
Posts: 538
Joined: 2005-09-02 11:12

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by rootsvr » 2006-12-17 13:46

Normalerweise nimmt der Apache alle Sachen die er nicht kennt auf den Defaulthost, ob man das ändern kann.. ka. 2 Tage sollte der DNS durchgelaufen sein, ansonsten nutz das doch und servier den Domains Werbung *g*

marvet
Posts: 36
Joined: 2006-07-11 10:44

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by marvet » 2006-12-17 19:59

Normalerweise sollte der Apache das machen. Macht er aber eben nicht, sondern er nimmt den ersten VHost, den er findet.

Wann die Nameserver Ihre Einträge aktualisieren ist eigentlich sehr egal, sofern der Eigner die IP-Adresse nicht ändert. Und davon ist momentan leider nicht auszugehen.

Dennoch vielen Dank für Deine Hilfe!

Gruß,
Markus

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by lucki2 » 2006-12-17 23:40

Code: Select all

Normalerweise sollte der Apache das machen. Macht er aber eben nicht, sondern er nimmt den ersten VHost, den er findet. 
Das ist richtig. Auch wenn jede minor Release Vhosts ein bischen anders handhabt - Du schilderst Verhalten, wie es sein soll.

Ich würde da keine Werbung drauf tun, sondern ein Redirect mit Hinweis, damit die Leute dort hin kommen, wo sie wollen.
Debian 3.1 stable den Apache 2.2.3
Viel spaß. Mußt alles, was mit apache zusammen arbeitet patchen(2.0!=2.2). Sonst kracht die Kiste *g*.

marvet
Posts: 36
Joined: 2006-07-11 10:44

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by marvet » 2006-12-18 10:12

Code: Select all

Redirect permanent / http://www.example.com
Dennoch bin ich der festen Überzeugung, daß man das Horchen des Apache auf unbekannte Domains irgendwie abschalten kann.

Denoch vielen Dank.

@Lucki
Probleme mit dem Apache gibt es bislang überhaupt nicht. Alles was laufen soll, läuft auch. Ohne "krachen" ;-) Nur mod_fastcgi macht ein wenig Probleme.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by lucki2 » 2006-12-18 10:24

mod_fastcgi ist das geringste: schau dir das diff in testing an und hau den Abschnitt mit den Konstanten dazu(10 Stück oder so - fällt auf).
das müsste der entscheidende Patch sein:

Code: Select all

+@DPATCH@
+diff -ruN mod_fastcgi-2.4.2/fcgi.h mod_fastcgi-2.4.2-ap22/fcgi.h
+--- mod_fastcgi-2.4.2/fcgi.h	2003-02-04 00:07:37.000000000 +0100
++++ mod_fastcgi-2.4.2-ap22/fcgi.h	2005-12-07 21:05:55.000000000 +0100
+@@ -73,6 +73,36 @@
+ #define ap_reset_timeout(a)
+ #define ap_unblock_alarms()
+ 
++/* starting with apache 2.2 the backward-compatibility defines for
++ * 1.3 APIs are not available anymore. Define them ourselves here.
++ */
++#ifndef ap_copy_table
++
++#define ap_copy_table apr_table_copy
++#define ap_cpystrn apr_cpystrn
++#define ap_destroy_pool apr_pool_destroy
++#define ap_isspace apr_isspace
++#define ap_make_array apr_array_make
++#define ap_make_table apr_table_make
++#define ap_null_cleanup apr_pool_cleanup_null 
++#define ap_palloc apr_palloc
++#define ap_pcalloc apr_pcalloc
++#define ap_psprintf apr_psprintf
++#define ap_pstrcat apr_pstrcat
++#define ap_pstrdup apr_pstrdup
++#define ap_pstrndup apr_pstrndup
++#define ap_push_array apr_array_push
++#define ap_register_cleanup apr_pool_cleanup_register
++#define ap_snprintf apr_snprintf
++#define ap_table_add apr_table_add
++#define ap_table_do apr_table_do
++#define ap_table_get apr_table_get
++#define ap_table_set apr_table_set
++#define ap_table_setn apr_table_setn
++#define ap_table_unset apr_table_unset
++
++#endif /* defined(ap_copy_table) */
++
+ #if (defined(HAVE_WRITEV) && !HAVE_WRITEV && !defined(NO_WRITEV)) || defined WIN32
+ #define NO_WRITEV
+ #endif

marvet
Posts: 36
Joined: 2006-07-11 10:44

Re: Apache - VHosts - Domain wird auf ersten VHost geleitet

Post by marvet » 2006-12-18 10:32

Probier ich heute noch aus. Vielen Dank! :-)

Gruß,
Markus