PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschied Namens- und Ip-basierte virtuelle hosts



mdkuser
12.01.04, 13:01
Nur mal zur Info der Unterschied von Namens- oder Ip-basierten virtuellen
Hosts beim Apache 2 ist nur, dass ich für IP-basierte VHosts in der VHosts section der httpd.conf die IP-Adressen, statt der Domainnamen eintrage, ja? Ist das korrekt? Also im Prinzip entscheidet der Eintrag darüber ob der VHost Ip-basiert oder Names-basiert arbeitet, oder?
Wäre nett wenn mich mal jemand drüber aufklären könnte.
Danke!

LKH
12.01.04, 13:33
Hi,

also bei IP-basierten virtuellen Host hat jeder eine eigene IP. Bei namensbasierten virtuellen Hosts haben alle die gleiche IP, die Unterscheidung wird duch den Namen vorgenommen. Das muss aber vom Browser unterstützt werden (machen aber alle mir bekannten; HTTP 1.1).

mdkuser
12.01.04, 13:57
Danke für die Antwort, was ich nur wissen wollte ist, kann sowohl Namen als auch IPs in der httpd.conf unter virtual hosts eintragen, oder muss man da unterscheiden? Also werden sowohl namens- als auch ip-basierte Vhosts an der gleichen Stelle in der httpd.conf konfiguriert (oder sind ips da eher nicht einzutragen)?

Beispiel (IP-basiert):

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName 192.168.1.3
ErrorLog /var/log/httpd/error_log
</VirtualHost>


Beispiel (Names-basiert):

<VirtualHost server.xyz.net:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName server.xyz.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>


So korrekt?

Doh!
12.01.04, 15:25
Namensbasierte Virtuelle Hosts sind beim http (mit ftp geht's übrigens nicht) dafür gut, dass Du auf einem Server mit einer IP mehrere Domänen verwalten kannst.

Also IP 12.13.14.15 kann für verschiedene Domains benutzt werden.

LKH
12.01.04, 15:33
Hi,

man kann das Ganze auch mischen. Würde ich aus Gründen der Administrierbarkeit aber nicht machen. Wenn sich nicht viel ändern wird in geraumer Zeit und es nur wenige virtuelle Hosts sind kannst du IP-basierte nehmen, bei mehr als fünf und ständigen Änderungen nimm namenbasierte.

steve-bracket
12.01.04, 15:36
Original geschrieben von mdkuser
Beispiel (IP-basiert):

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName 192.168.1.3
ErrorLog /var/log/httpd/error_log
</VirtualHost>


Beispiel (Names-basiert):

<VirtualHost server.xyz.net:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName server.xyz.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>


So korrekt?

Beispiel (IP-basiert):

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName 192.168.1.3
ErrorLog /var/log/httpd/error_log
</VirtualHost>


Beispiel (Names-basiert):

NameVirtualHost 192.168.1.3

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName server.xyz.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>

Gruß

mdkuser
13.01.04, 09:17
@all
Danke für eure Erklärungen, jetzt blicke ich da eher durch!

@steve-bracket


Beispiel (IP-basiert):

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName 192.168.1.3
ErrorLog /var/log/httpd/error_log
</VirtualHost>


Beispiel (Names-basiert):

NameVirtualHost 192.168.1.3

<VirtualHost 192.168.1.3:80>
ServerAdmin admin@xyz.net
DocumentRoot /var/www/html/1
ServerName server.xyz.net
ErrorLog /var/log/httpd/error_log
</VirtualHost>


Danke! Also da gibt es doch einen Unterschied bei dem Konfig-Eintrag!
Für Namensbasierte VHosts muss also zusätzlich NameVirtualHost IP-Adresse eingefügt werden! Das wollte ich wisssen!
Wen ich das richtig verstanden habe, sind namens-basierte VHosts dann vorzuziehen, wenn dns-Einträge sich oft ändern z.b. bei dyndns.


Danke nochmal an alle! ;)

mdkuser
13.01.04, 09:22
@Doh!

Sorry für Doppelposting. Du sagtest Namesbasierte VHosts gehen nur beim Web-Server nicht beim FTP. Wenn ich also IP_basierte VHosts einrichten will wie konfiguriere ich dann die Netwerkarte? ifconfig ethx:0 IP1 ifconfig ethx:1 IP2 oder? Mein Rechner ist in einer DMZ hinter einem Router und hat eine Adresse der Form 192.168.1.x. Kann ich, wenn ich auf dem Adapter mehrere IPs einrichte, dann IP-basierte Vhosts benutzen, oder kriege ich da Probleme wegen NAT?

Doh!
13.01.04, 13:54
Original geschrieben von mdkuser
@Doh!

Sorry für Doppelposting. Du sagtest Namesbasierte VHosts gehen nur beim Web-Server nicht beim FTP. Wenn ich also IP_basierte VHosts einrichten will wie konfiguriere ich dann die Netwerkarte? ifconfig ethx:0 IP1 ifconfig ethx:1 IP2 oder? Mein Rechner ist in einer DMZ hinter einem Router und hat eine Adresse der Form 192.168.1.x. Kann ich, wenn ich auf dem Adapter mehrere IPs einrichte, dann IP-basierte Vhosts benutzen, oder kriege ich da Probleme wegen NAT?

Genau, Du richtest eth0 dann eth0:0 dann eth0:1 usw. ein. Einrichtung wie Du bereits sagtest über ifconfig oder aber distributionsspezifisch um sie beim Systemstart gleich oben zu haben(Bei SuSE z.B. die Dateien /etc/sysconfig/network/ifcfg-eth0 ; ifcfg-eth0:0 usw.).

Mit dem NAT wird's dann etwas schwierig, weil Du ja immer nur eine öffentliche IP hast, die auch noch dynamisch ist. Ich denke Du müsstest daher das ganze über Ports und PAT regeln. Jemand der sich auf ftp://ftp.deinedomain.de verbinden will muss das - wenn Du mehr als einen (virtuellen) FTP-Server verwenden willst, sich mit anderen Ports verbinden: Also will einer http machen, macht er einfach das ganze mit

http://virtuellerhost1.deinedomain.tld
http://virtuellerhost2.deinedomain.tld usw.

Der DNS bei Deinem DynDNS Provider muss natürlich die alle hosts auf Deine IP Zeigen lassen

hier klappt NAT ja trotzdem, weil nicht nach IP, sondern nach Domain (bzw. dem Host) aufgelöst wird

wenn Du ftp auf mehrere (virtuelle) Server machen willst, geht der erste ganz normal (über 21) auf

ftp://virtftphost.deinedomain.tld

Den zweiten musst Du dann auf einen anderen Port setzen, z.b.:
ftp://virtftphost.deinedomain.tld:555

usw. Den verschiedenen FTP-Hosts unterschiedliche hostnamen zu geben, kannst Du zwar machen, wird Dir aber nichts bringen, da der FTP-Server später nur anhand der IP entscheidet, welcher virtuelle Host welche Anfrage bearbeitet. Du kannst nun aber auf der Kiste die das NAT macht nun sagen, dass eingehende Verbindungen auf virtftphost.deinedomain.tld:21 (das standardding also) auf die erste IP Deines Servers geleitet wird, virtftphost.deinedomain.tld:555 auf die andere.

Wenn Du mitgedacht hast und ich das ganze einigermaßen verständlich geschrieben habe, wirst Du nun sehen, dass dann eigentlich die virtuellen Adressen an Deinem Server unnötig sind. Virtuelle FTP-Hosts können natürlich auch auf anderen Ports als 21 lauschen.

Daher kannste einfach das NAT lassen wie es ist, und den FTP-Server entsprechend konfigurieren. Willst Du mehrere unterschiedliche Namen für ftp-Server haben, so benötigst Du mehrere entsprechend viele öffentliche IP's.

mdkuser
14.01.04, 09:16
@Doh

Guten Morgen, danke für die kompetente Erklärung! Ich glaube ich habe das jetzt gut verstanden. Also noch mal zu den FTP-Servern, durch NAT habe ich nach außen nur eine IP also muss jeder FTP auf einen anderen Port hören. Folglich brauche ich meine Netzwerkkarte nicht mit mehren IPs zu belegen, sondern brauche einfach die virtuellen FTP-Hosts auf unterschiedlichen Ports laufen lassen, auf die dann Anfragen an den jeweiligen Host vom Router per PreRouting und Portforwarding an jeweils unterschiedliche Ports der gleichen IP weitergeleitet werden und auf jeden dier Ports hört dann ein virtueller FTP, richtig?
Wenn aber für FTP nicht der Standardport 21 benutzt wird müssen die Clients bei der Anfrage den Port mit angeben, richtig? Analog funktiniert das auch mit virtuellen Web Hosts, nur dass da auch zusätzlich die elegantere Lösung mit namensbasierten VHosts möglich ist.
Man möge mich korrigieren, wenn ich falsch liege.
Danke noch mal für die kompetente Hilfe! ;)

Doh!
14.01.04, 09:18
Alles völlig korrekt - zumindest soweit mein Wissen reicht.

mdkuser
14.01.04, 10:14
Danke! Der Support hier ist großartig ;)