Hei
Her kommer jeg med flere ting som du kan ha nytte av å vite.
Hvordan kan flere maskiner bruke samme port, å hvordan kan man ha 2 servere?
Det er ikke maskinen som bruker porten, men IP-adressen som maskinen har. La oss si at maskinen din har IP-adresse 192.168.1.100. Du kan dermed ha en server på port 80 (192.168.1.100:80).
Hvis din PC har flere IP-adresser, f.eks. 192.168.1.100 og 192.168.1.101, så kan du til og med f.eks. bruke Apache webserver på IP 192.168.1.100, og Nginx på 192.168.1.101, begge på port 80. Eller selvfølgelig, et domene på 192.168.1.100, et annet domene på 192.168.1.101, uavhengig av hvilken webserver du bruker. Det er som sagt IP-adressen som lytter på porten, ikke maskinen.
Når du først har startet en tjeneste som lytter på en adresse (192.168.1.100) og en port (80), så er det ikke mulig å få en annen tjeneste til å lytte på samme IP og port. Derfor kan du i mange tilfeller velge selv hvilken IP-adresse som tjenesten skal lytte på, som oftest er den satt til 0.0.0.0 (eller stjerne *), eller 127.0.0.1, eller localhost, eller noe. Er den satt til 0.0.0.0, så er det fordi den tjenesten skal lytte på port 80 på alle IP-adresser som maskinen din har. Er den satt til 127.0.0.1, så er tjenesten kun tilgjengelig fra samme maskin som den selv står på. Setter du den til 192.168.1.100, så vil andre enheter på nettverket kunne kontakte tjenesten (akkurat som når den er satt til 0.0.0.0, men hvis du setter til 192.168.1.100, og din PC også har 192.168.1.101, så vil ikke tjenesten være tilgjengelig på 192.168.1.101)
Så når du har flere PC-er på nettverket ditt, alle med hver sin IP-adresse, og alle kjører webserver på port 80, og vil ha tak i dem fra utsiden, så må du huske på det jeg tidligere skrev; Det er IP-adressen som lytter på porten. Når du har kun en WAN IP-adresse, så kan du dessverre kun port forwarde til kun en av maskinene, men det finnes løsninger rundt dette, f.eks. reverse proxy og slikt.
Hvordan kan mange pcer koble til en server med den samme porten?
En server er jo laget for å være sånn. Ta i mot mange klienter samtidig.
Å manprøver å gå inn på lol.no uttenfra, hvordan vet pcen hvilken av de 2 serverene den skal til? Siden: lol.no= wan ip
å den er lik for begge..
Det er det vi har virtualhost for. Når man besøker lol.no fra utsiden, så vil domenenavnet også taes med til webserveren, og den vil spørre webserveren om å få se nettsiden for domenet lol.no
For Apache konfigurerer du det slik (Lytter på alle IP-adresser):
Kode
Listen 80
<VirtualHost *:80>
DocumentRoot "/www/lol.no"
ServerName www.lol.no
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/example.org"
ServerName www.example.org
</VirtualHost>
Dersom hver sin webside skal ha hver sin IP:
Kode
Listen 80
<VirtualHost 192.168.1.100:80>
DocumentRoot "/www/lol.no"
ServerName www.lol.no
</VirtualHost>
<VirtualHost 192.168.1.101:80>
DocumentRoot "/www/example.org"
ServerName www.example.org
</VirtualHost>
For Nginx konfigurerer du det slik:
Kode
server {
listen 80;
listen [::]:80;
root /var/www/lol.no;
index index.html index.htm;
server_name lol.no;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
listen [::]:80;
root /var/www/example.org;
index index.html index.htm;
server_name example.org;
location / {
try_files $uri $uri/ =404;
}
}
eller med hver sin egen IP:
Kode
server {
listen 192.168.1.100:80;
listen [::]:80; //Lytter på alle IPv6-adresser som maskinen har.
root /var/www/lol.no;
index index.html index.htm;
server_name lol.no;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 192.168.1.101:80;
listen [::]:80; //Lytter på alle IPv6-adresser som maskinen har.
root /var/www/example.org;
index index.html index.htm;
server_name example.org;
location / {
try_files $uri $uri/ =404;
}
}
Når det er sagt: Det er utdatert å basere seg på IPv4-adresser. Bruk heller IPv6-adresser, det er nemlig lagt opp mulighet for så mange IPv6-adresser at alle enheter i hele verden kan få hver sin adresse, og man trenger på ingen måte port forwarding eller noe sånt, fordi man er ikke bak NAT når man gjør IPv6 på riktig måte. Jeg hoster alle mine kunder på IPv6, og har en server med IPv4-adresse som fungerer som reverse proxy til IPv6-adressen.
Sist endret av Tysteren; 23. november 2023 kl. 09:17.
Grunn: Automatisk sammenslåing med etterfølgende innlegg.