Linux genomförandet av virtuella domän



Författare: Zheng Tao

Linux operativsystem är mycket varmt nu, så många av mina vänner vill veta om Linux, förverkligandet av den virtuella domänen. Följande baseras på aktuella populärt på RedHat att diskutera.

1, DNS-server-inställningar

Vi vet att Internet nät är baserat på TCP / IP-protokollet för att kommunicera måste vara varandras IP-adress, DNS-server, detta uppnås genom. För att förverkliga den virtuella domän, alltså första DNS-server bör göras för att acceptera den virtuella domän, det vill säga den visar att den angivna IP-adressen. Eftersom vi lita på att skilja domännamnet webbservern, så detta bör vara IP-adress på den fysiska lyckades webbservern.

RedHat6.0 operativsystem medföljer BIND DNS-server. Det är domänen konfigurationsfilen är "/ etc / named.conf", under normala omständigheter filer domänen konfigurationen i "/ var / heter" katalogen.

Fall 1, named.conf konfigurationsfil:

zon "domain.com" (
typ herre;
filen "domain.com";
);
zon "0.10.10.in-addr.arpa" (
typ herre;
filen "10.10.0";
);

De exempel på "domain.com" domän konfigurationsfil är "/ var / kallas / domain.com", omvända domän konfigurationsfilen är "/ var/named/10.10.0". domain.com fil ansvarar för kartläggning DNS-domän IP-adress.

Fall 2, fil domain.com konfiguration:

@ IN SOA dns.domain.com. Hostmaster.dns.domain.com. (
1998111003, seriell
3600; refresh
900; igen
1209600; ut
43200; default_ttl
)
@ IN MX 10 dns.domain.com.
@ IN NS dns.domain.com.
@ IN A 10.10.0.1
www IN A 10.10.0.1

Antas öka domännamnet är aaa.domain.com, vill peka på www.domain.com bör DNS-tjänster läggas till ett alias post, kan skrivas som:

aaa IN CNAME www.domain.com.

Om du behöver konfigurera ett stort antal virtuella domän domain.com fil att vara stor, men också mycket besvärligt. Vi kan använda symbolen "*", det vill säga att gå med i domain.com filen:

* I CNAME www.domain.com.

Så att det inte sätta alla inställningar på den sista posten av domain.com till www.domain.com alla borta, även aaa.domain.com eller bbb.domain.com. Detta påverkar inte den befintliga posten. Konfigurerad DNS-server bör starta om demonen som heter:

[Root @ domän / root] # / etc / rc.d / init.d / som heter omstart




[Nästa]



Linux operativsystem är mycket varmt nu, så många av mina vänner vill veta om Linux, förverkligandet processen för den virtuella domänen. Följande baseras på aktuella populärt på RedHat att diskutera.

2, Apache-server konfiguration

Apache-server är den mest använda Internet-webbservern, vilket kan upprätthålla en mycket upptagen plats. RedHat 6,0 buntar Apache Web Server 1.3. Dess konfigurationsfil som finns i "/ etc / httpd / conf" katalogen finns httpd.conf, srm.conf, access.conf, diskutera följande om konfigurationen av virtuella domän:

1, statisk konfiguration

Åtgärder för att ändra konfigurationsfilen httpd.conf:

(1) Första set UseCanonicalName är avstängd. Den visar att med servern Host: header ersätta innehållet Servernamn värde att lämna till miljövariabeln SERVER_NAME.

(2) och tillade:

NameVirtualHost xxx.xxx.xxx.xxx där xxx.xxx.xxx.xxx är den virtuella servern för att konfigurera IP-adress. Här kan du konfigurera flera virtuella IP-adresser, naturligtvis, med samma DNS-server konfiguration. (Obs: använd IP-adresser kan domännamn inte användas.)

(3) Nästa, för varje virtuell domän i en post:

Virtualhost Xxx.xxx.xxx.xxx
.....
/ VirtualHost

och NameVirtualHost xxx.xxx.xxx.xxx att konfigurera IP-adressen på samma. Mellan de två varumärkena kan läggas till i konfigurationsparametrar:

Servernamn tillbaka med dig för att öka den virtuella domän, t.ex. aaa.domain.com;
DocumentRoot Om du har mappat till stig av maskinen bakom ökningen, till exempel "/ home / AAA";
omdirigera Om du kartan till en avlägsen URL att lägga till i ryggen, finns det två parametrar, den första är den virtuella domänen relativ sökväg, är den andra fjärrkontrollen webbadress;
ServerAlias efter medlemskapet i domänalias kan du använda jokertecken som *. aaa.domain.com.

Följande två exempel:

Exempel 3, kopplas till den fysiska sökvägen till maskinen:

Virtualhost Xxx.xxx.xxx.xxx
DocumentRoot "/ home / test"
Servernamn test.domain.com
Virtualhost

Exempel 4, kartläggning till en avlägsen webbadress:

Virtualhost Xxx.xxx.xxx.xxx
Servernamn test1.doamin.com
omdirigera / http://test.domain1.com/welcome.htm
/ VirtualHost

Vissa parametrar såsom loggfil läge, time-out inställningar, buffert inställningar osv, inte 11 i denna beskrivning kan hänvisa till Apache-server online-hjälpfiler. Httpd.conf fil konfigurerad att starta om Apache efter bakgrunden demonen httpd,

[Root @ domän / root] # / etc / rc.d / init.d / httpd starta

Varje ytterligare tid att öka i en virtuell domännamn i VirtualHost ... ... / VirtualHost mellan konfiguration kod, och endast när du startar httpd nya profilen ska börja gälla.

2, dynamisk struktur

Kan hittas, om du vill konfigurera ett stort antal virtuella domän kommer att kraftigt öka längden i konfigurationsfilen, så Apache kommer att börja bromsa, tar upp mer minne, men inte lätt att uppnå ansöka online. Kan välja att konfigurera dynamiskt. Utan föregående skriftligt denna konfiguration, men genom utarbetandet av vissa dynamiska regler för att automatiskt generera, eller när som helst från separat konfigurationsfil för att läsa information.

Apache har en kraftfull utbyggnad som modulen (Modules) funktioner. Modulen kan utöka funktionerna i servern och använda den när du kör in i servern, så som har placerats i servern än att spara minnesutrymme, medan ringa externa CGI-process än hastighet.

Använd nu en kraftfull modul för att dynamiskt konfigurera en virtuell domän, det är mod_rewrite. Den ansvarar för att lyssna från klienten skickade URL-adressen och uttrycket bygger på en uppsättning regler som ska skrivas till URL. Detta liknar begreppet URL alias, men det går ett steg längre, kan produktionen av webbadressen mappas till någon annan värd URL-adress. Åtgärder för att ändra konfigurationsfilen httpd.conf:

(1) Den första UseCanonicalName är avstängd.

(2) användning av öppna skriva om motorn RewriteEngine på. Konfigurationsfilen med RewriteMap ange var och attribut, med RewriteCond och RewriteRule utveckla motsvarande regler.

Fall 5, httpd.conf fil konfigurationen av ett exempel:

RewriteEngine på
RewriteMap gemener int: tolower
# Definiera ett separat konfigurationsfiler
RewriteMap vhost dBm: / www / conf / vhostdbm
# Använd separat konfigurationsfil för att kartlägga den virtuella domän
RewriteCond $ (vhost:% 1) ^(/.*)$
RewriteRule ^/(.*)$% 1/docs / $ 1

RewriteCond% (REQUEST_URI) ^ / cgi-bin /
RewriteCond $ (små bokstäver:% (SERVER_NAME)) ^(.+)$
RewriteCond $ (vhost:% 1) ^(/.*)$
RewriteRule ^/(.*)$% 1/cgi-bin / $ 1

Här vhostdbm filformat finns i "cgi-preparat."




[Nästa]

Linux operativsystem är mycket varmt nu, så många av mina vänner vill veta om Linux, förverkligandet processen för den virtuella domänen. Följande baseras på aktuella populärt på RedHat att diskutera.

För det tredje, CGI programmering för

Att tillämpa virtuella domän måste du skriva rätt CGI-program dynamiskt ändrar separat konfigurationsfil (som ligger över vhostdbm filer) och för användarhantering (inklusive användarprogram, inloggning, förändringar lösenord osv.) Detta bara beskriver profilen på oberoende operation, den andra hur man använder Perl språk för att skriva CGI-program, se till relevant information.

vhostdbm fil med hjälp dbm format att föra in uppgifter, och jämfört med en vanlig textfil kan påskynda sökandet efter hastighet, och lätt att ändra. Många UNIX-system har krävt dBm (databashantering) av standarden biblioteket. Biblioteket kommer att vara nyckel - värdepar lagras till en bricka arkivera, att ge enkla verktyg för databashantering, kan du enkelt ändra, lägga till eller ta bort data innehållet.

Perl tillgång dbm sätt: öppna filen genom en liknande process med en associativ array med dbm databasen kommer att länkas. Skapa ett nytt inslag i kedjan förändras omedelbart när dBm databasen. Ta bort ett element samtidigt ta bort de värden dBm databasen. Kan användas:

1, som vill dBm dBm utbud av databaser och i samband med:

dbmopen (% arrayname "dbmfilename", $ läge);

Om dbmfilename existerar inte på det nya biblioteket. % Arrayname parameter Perls associativ array (om array redan har ett värde, då dessa värden kommer att tas bort). Den associativa array ansluten till heter dbmfilename den dBm databasen. $ Mode argument är behovet av att skapa ett bibliotek när biblioteket filrättigheterna kontrollera antalet är siffran utses till 8 system, används ofta är 0644, förutom de nya Utöver de viktigaste maskinen läsbehörighet för användaren, maskin ägare till har full tillgång.

2, stäng dBm biblioteket:

dbmclose (% arrayname);
% Arrayname dbm bibliotek är redan kopplad till matrisen namn.

Fall 6, vhost öppna vhostdbm eller skapa ett dBm bibliotek:

dbmopen (% vhost, "vhostdbm", 0644);

Exempel 7, den nya poster eller ändra befintliga poster (finns i de överlåtelseformulär från HTML-filen över den parameter som heter vhost, rhost):
$ Vhost ($ FORM (''vhost''}}=$ FORM (''rhost'');

Exempel 8, radera det nuvarande rad (som i de överlåtelseformulär från HTML-filen över den parameter som heter vhost):
ta bort $ vhost ($ FORM (''''}}; vhost

Exempel 9, nära vhostdbm:

dbmclose (% vhost);

Anmärkning: Ovanstående parametrar har ställts överföring via efter kontroll finns det ingen upprepning av skivan, annars kommer det att leda till kaos har registrerats.