Ik heb meerdere websites in een virtualhost configuratie op Apache2 in Linux Debian Etch draaien. Ik kom er vandaag achter dat het niet mogelijk is om vanuit localhost mijn interne LAN interface (eth0) te benaderen. Nader toegelicht:
Doordat het aanroepen van een rssfeed van virtualhost 1 (www.nummer1.nl) vanuit virtualhost 2 (www.nummer2.nl) om onverklaarbare redenen niet goed ging, ben ik op onderzoek uit gegaan. Als ik via een remote shell sessie op mijn server ben ingelogd (bash) en ik doe wget ww.nummer1.nl dan krijg ik (met behulp van bind9 views) de volgende output:
en dan blijft ie "hangen".
Apache is zodanig geconfigureerd dat ie luistert op alle interfaces. Netstat (-ptln) bevestigt dat:
Echter, apache2 via localhost benaderen mbv telnet gaat wel goed.
Als ik vervolgens een wget uitvoer op http://localhost, dan haal ik met succes een index.html (uit /var/www) op van de default virtualhost (zie ook config hier beneden).
De (volgens mij) relevante stukken uit mijn apache config:
De virtualhost van default bevat eigenlijk veel standaard dingen. En ik zie op het eerste oog geen verschillen waardoor een wget op http://locahost wel lukt, en een wget op http://www.nummer1.nl niet.
Zou dit ergens in mijn iptables kunnen zitten? Of wellicht in Bind? Of is mijn apache config toch niet helemaal correct?
Doordat het aanroepen van een rssfeed van virtualhost 1 (www.nummer1.nl) vanuit virtualhost 2 (www.nummer2.nl) om onverklaarbare redenen niet goed ging, ben ik op onderzoek uit gegaan. Als ik via een remote shell sessie op mijn server ben ingelogd (bash) en ik doe wget ww.nummer1.nl dan krijg ik (met behulp van bind9 views) de volgende output:
code:
1
2
3
4
| --10:00:09-- http://www.nummer1.nl/
=> `index.html'
Resolving www.nummer1.nl... 192.168.1.1
Connecting to www.nummer1.nl|192.168.1.1|:80... |
en dan blijft ie "hangen".
Apache is zodanig geconfigureerd dat ie luistert op alle interfaces. Netstat (-ptln) bevestigt dat:
code:
1
2
| Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 24788/apache2 |
Echter, apache2 via localhost benaderen mbv telnet gaat wel goed.
Als ik vervolgens een wget uitvoer op http://localhost, dan haal ik met succes een index.html (uit /var/www) op van de default virtualhost (zie ook config hier beneden).
De (volgens mij) relevante stukken uit mijn apache config:
code:
1
2
3
4
5
| ServerName 127.0.0.1 Listen 80 Listen 443 NameVirtualHost *:443 NameVirtualHost *:80 |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <VirtualHost *:80>
ServerAdmin bla@bla.bla
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log custom
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost> |
code:
1
2
3
4
5
6
7
| <VirtualHost *:80>
ServerName www.nummer1.nl
ServerAlias nummer1.nl
ServerAdmin bla@bla.bla
DocumentRoot /var/domains/www.nummer1.nl
CustomLog /var/log/apache2/www.nummer1.nl.log custom
</VirtualHost> |
De virtualhost van default bevat eigenlijk veel standaard dingen. En ik zie op het eerste oog geen verschillen waardoor een wget op http://locahost wel lukt, en een wget op http://www.nummer1.nl niet.
Zou dit ergens in mijn iptables kunnen zitten? Of wellicht in Bind? Of is mijn apache config toch niet helemaal correct?