Apache non-IP Virtual Hosts
Zdenek Havelka
zdenekh na pvt.net
Čtvrtek Říjen 31 08:03:04 CET 1996
Radek Kanovsky wrote:
> Ujistete se, ze Vas www browser posila informaci, na ktery www server
> se chce pripojit. Tuto informaci Apache ulozi do promenne HTTP_HOST.
> Podle ni se rozhodne, na ktery "document root" pujde". Tuto informaci
> posilaji pouze novejsi verze Netscapu a Exploderu. Ani Mosaic ani Lynx
> ji neposilaji. O jinych nevim.
Zkousel jsem tyto klienty:
MSIE for Win95 version 2.0 (4.40.516) - neumi
MS IE for Win95 version 3.0 (4.70.1155) - umi
Lynx verze 2.5 - umi
NCSA Mosaic v 2.1.1 (Win95) - neumi
Netscape 1.2 (unix) - neumi
Netscape 2.02 (win95) -umi
Ostatni si kazdy muze otestovat sam.
Upravil jsem si na to stand. script, ktery se distribuuje jako priklad v
distribuci Perlu pro NT.
Vypada asi takhle:
#!/usr/bin/perl
use POSIX "sys_wait_h";
$port = 8081;
$sockaddr = 'S n a4 x8';
$AF_INET = 2;
$SOCK_STREAM = 1;
($name,$aliases,$proto) = getprotobyname('tcp');
$this = pack($sockaddr,$AF_INET,$port,"\0\0\0\0");
select(NS); $| = 1; select(stdout);
socket(S,$AF_INET,$SOCK_STREAM,$proto);
bind(S,$this) || die "bind: $!";
listen(S,5) || die "listen: $!";
select(S); $| = 1; select(stdout);
@Potomci = ();
for($con = 1; ; $con++){
print "Listening for connection no. ",$con,"...\n";
($addr = accept(NS,S)) || die $!;
if (($child = fork()) == 0){
print "Accept ok\n";
($af,$port,$inetaddr) = unpack($sockaddr,$addr);
@inetaddr = unpack('C4',$inetaddr);
print "Con: $con, Af: $af, Port: $port, Addr:
@inetaddr\n";
while($x=<NS>){
tr/a-z/A-Z/;
print "$x";
}
close(NS);
exit;
}
else{
close(NS);
while(waitpid(-1,&WNOHANG)) {}
}
}
a po spusteni posloucha na portu 8081 a prichozi hlasky vypisuje na
obrazovku.
Po spusteni staci zadat browseru jako URL http://localhost:8081/ a
pockat, co se objevi na obrazovce terminalu, kde byl spusten script.
Po precteni prerusit nejprve natahovani dokumentu v browseru a pak
ukoncit script (CTRL+C).
Pokud klient virtual host umi, obsahuje jeho dotaz polozku host:
Napr. NTSC 3.0
> GET / HTTP/1.0
> Connection: Keep-Alive
> User-Agent: Mozilla/3.0Gold (X11; I; Linux 2.0.18 i586)
> Host: localhost:8081 --- !!! to je to, o co kraci.
> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
--
Zdenek Havelka E-mail: zdenekh na pvt.net
Další informace o konferenci Linux