Gå til innhold
Trenger du hjelp med internett og nettverk? Still spørsmål her ×

2 web servere på samme nettverk / ip adresse


Anbefalte innlegg

Hei.

Vi er to studenter som kjører en linux web server på vår IP adressen 123.456.789.123. Vi har port nr 80 forwarded til denne maskinen med intern ip adresse 10.0.0.3. Kartet på vårt nettverk er meget enkelt, vi har en ruter(10.0.0.1) som forwarder port nr 80 til denne maskinen, men vi fant ut at vi skulle sette opp enda en server på nettverket som har ip adresse 10.0.0.9.

 

Det vi lurer på er om dette skal gjøres i httpd.conf på 10.0.0.3 maskinen, som også styrer DHCP på nettverket, og i så fall hvordan. Er det i det hele tatt mulig?

prøvd meg frem i httpd.conf med virtual host, å sette serverpath til intern ip adresse, men fungerte ikke.

 

Den som svarer trenger nødvendigvis ikke forklare 100% hvordan man gjør det, kanskje bare peke oss i riktig retning. Så sant det ikke er meget enkelt.

 

målet er f.eks at server1.domene.com skal peke til 10.0.0.3 og server2.domene.com skal peke til 10.0.0.9.

 

Mvh

Cypherbase

Lenke til kommentar
Videoannonse
Annonse

hvis du skal ha 2 eller flere web sider så kan du ha dette på samme maskin. Dette ordnes ved at du enabler VirtualHosts i apache.

 

for eks noe sånt:

 

<VirtualHost example.com>

DocumentRoot "/var/www/htdocs/example"

ServerName site1.example.com

</VirtualHost>

 

<VirtualHost example2.com>

DocumentRoot "/var/www/htdocs/example2"

ServerName site1.example.com

</VirtualHost>

 

Disse to leser fra samma maskin men hvis man besøker http://example.com så leser den fra den ene mappa og example2.com en annen mappe. anbefaler at du google litt. det finnes name based og ip based virtual hosts. regner med at du skal bruke named based. Hvis du IKKE vil bruke virtualhosts så må du sette opp den andre serveren på for eks port 81 og forwarde denne. eller du kan kjøpe enda en ipaddresse hos din ISP som den andre serveren kan bruke men da må du endre litt på oppsettet dit.

Lenke til kommentar

eppis: Jeg har allerede det. Kjører to forskjellige domener opp mot min server, til hver sin mappe.

Jeg har NameVirtualHost *:80 og VirtualHost *:80 til de forskjellige domenene / mappene. Men regner med jeg må ha en ny IP adresse til den andre, bare det jeg vil unngå. For er dyrt med en ip adresse allerede. Skjønner ikke hvorfor det ikke finnes en enkel måte i httpd.conf som sier at når den maskinen får en forespørsel på server2.example.com så kan den sende denne videre til en annen maskin, i stedet for seg selv på server.example.com.

 

trrunde: jeg kan forsøke å google litt. Leste litt om proxy før her, men skjønte ikke mye av det. Kan se om jeg finner noe annet.

Ellers kan du gjøre det enkelt å bare benytte andre porter på server 2.

ulempen da er at du må spesifisere portnummer når du skriver adressa

Hehe akkurat dette jeg vil unngå. :p

Endret av cypherbase
Lenke til kommentar

i og med at serverne er på samma nettverk kan du bruke for eks samba/NFS til og dele htdocs mappa på den andre serveren og så mounter du den på web serveren. Da spesifiser du bare samba pathen eller mounten i virtual hosts. Det burde være en enkel løsning på problemet. Skjønner ikke helt hvorfor du trenger 2 web servere på to maskiner. Kan aldri tenke meg at dere har så mange sider/trafikk at dere trenge load balancing.

Lenke til kommentar

heeh joda har tenkt på det. Men da vil allikevel siden lastes fra server1, og ikke server2. Og så må jeg fikse så server1 kan koble seg til server2 sin mysql database, for eksempel.

 

Nei det er ikke mye trafikk. Bare at server1 er min server for det meste, og romkameraten hadde en ekstra maskin til overs, og fant ut at han også skulle kjøre sin egen server. Ikke spør meg hvorfor, men jeg synes da det hørtes litt interresant ut så tenkte jeg skulle prøve. Og jeg pleier som regel ikke å gi meg før jeg får det til...

Endret av cypherbase
Lenke til kommentar

leste litt opp på dette da jeg kansje får bruk for noe av det samme. Jeg kom fram til dette vertfall:

 

enable proxy i apache:

a2enmod rewrite

a2enmod proxy

/etc/init.d/apache2 force-reload

 

på hoved serveren definerer du et regelsett som forteler serveren hvor den skal hente fra.

virker som du kan bruke Rewrite til en del andre ting også.

 

<VirtualHost *:80>

ServerName www.example.com

RewriteEngine On

RewriteRule ^(.*)$ http://192.168.1.2$1 [P]

</VirtualHost>

hvor 192.168.1.2 er ipn til den andre serveren. RewriteRule er en regex. Etter du har satt opp dette på hoved serveren så må du kansje ha en virtual host på den andre serveren slik at den vet hvor man skal hente data.

 

jeg har ikke rukket og teste dette menne du kan jo gi meg tilbake melding ;)

Lenke til kommentar

vel, jeg fant ikke a2enmod, og ikke søkte jeg etter det på nettet heller. Men jeg enablet proxy og la det til akkurat slik du gjorde i virtual host. selvsagt med noen forandringer, som ip adressen min er 10.0.0.7 og adressen er server2.domene.com, MEN det ser ut til å fungere. Jeg får i hvertfall opp denne beskjeden:

Forbidden

You don't have permission to access / on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Hvilket betyr at den antagerligvis sender dette videre til den andre serveren, eller at den prøver å få tak i en mappe på samme server, bare at den mappen eies ikke av apache.

 

Selvsagt har romkameraten min lagt inn kubuntu, og har endret root passordet sitt, så jeg får ikke lagt inn apache og testet. Men han kommer hjem i kveld, så håper på å få testet det da. :)

 

Tusen takk for svar, det ser ut til å fungere. Vi får bare vente å se. ;)

Lenke til kommentar

Fungerer ikke. Den sender http forespørselen til denne mappen "/", altså ikke til den andre maskinen.

Apache/2.2.9 (Fedora) Server at *****.********.com Port 80

Siden det står fedora på denne maskinen, og at den andre er en ubuntu maskin, ble jeg ikke videresendt.

 

EDIT: Ok, et var kanskje på grunn av en liten skrivefeil. Jeg endret denne:

RewriteRule ^(.*)$ http://192.168.1.2$1 [P]

til

RewriteRule ^(.*)$ http://192.168.1.2$1

og da ble jeg videresendt. Men det står nå 192.168.1.2 i adressefeltet, hvor det skal stå http://server2.domene.com/

Endret av cypherbase
Lenke til kommentar

jeg gjør dette via httpd.conf i apache....

men en ting du må tenke på er om du vil ssl'e via subdomene redirectrule (altså ssl på selve frontend apache servern).

for da blir det betraktelig mere vimsvams (wildcarddomene og andre kodetriks i tillegg) :p

 

som du ser under, har jeg proxy vmware webgrensesnittet via mitt domene vmware.domain.net

hvis domenet vmware.domain.net skrives inn sendes brukern automatisk til en annen path:

https://vmware.domain.net/vmware/en(+alt annet bak)

deretter blir man proxyed til en intern ip

 

#Vmware server web interface

#Redirect hvis vi er på root nivå av vmware.domain.net

RewriteCond %{HTTP_HOST} ^vmware\.domain\.net$ [NC]

RewriteCond %{REQUEST_URI} ![a-z.-] [NC]

RewriteRule ^(.*)$ https://vmware.domain.net/vmware/en$1 [R,L]

 

#Proxying vmwareserver MUI

RewriteCond %{HTTP_HOST} ^vmware\.domain\.net$ [NC]

RewriteCond %{REQUEST_URI} [a-z.-] [NC]

RewriteRule ^(.*)$ https://10.0.1.666:8333$1 [P,L]

Endret av ThorB
Lenke til kommentar
Jeg kan gi det et forsøk ThorB. Ser ikke ut som noe kode jeg kan utifra mitt hode. Hehe. Men jeg skal selvsagt prøve.

alt kommer an på hva man trenger.

 

du kan kutte ut en del kode hvis du ikke trenger å redirecte fra rota til en annen mappe før du proxyer.

så da blir koden slik:

 

#Proxying vmwareserver MUI

RewriteCond %{HTTP_HOST} ^vmware\.domain\.net$ [NC]

RewriteRule ^(.*)$ https://10.0.1.666:8333$1 [P,L]

 

(P står for proxy, L står for last rule... bokstavene NC husker jeg ikke i farta hva står for)

 

da bytter du ut https://10.0.1.666:8333 med adressen din.

hvis du bruker standard portene for http/https kutter du ut :8333

 

adressen kan også forøvrig inneholde en spesifikk path, men da ser ikke brukeren den pathen

https://10.0.1.666:8333\bilder\

 

følg tingo sin oppfordring for å få domenet rett på linkene du eventuelt har på websiden

ProxyPreserveHost on

det denne gjør er å skrive om alle linkene med domenet du til slutt får på siden

i mitt eksempel blir en link til et bilde skrevet om slik

https://10.0.1.666:8333\bilder\test.jpg

skrevet om til

http://vmware.domain.net\test.jpg

 

 

jeg har forresten en liten kode i tillegg som definerer hvem som får lov til å benytte proxyen.jeg er ikke 100% sikker på hvordan denne bør være. må vel sjekke litt...

 

eksempel-> mulig denne er skummel..er ikke helt sikker

for å sette dette opp riktig må du lese her->http://httpd.apache.org/docs/2.0/mod/mod_proxy.html:

<Proxy *>

Order deny,allow

Allow from all

</Proxy>

 

This is dangerous both for your network and for the Internet at large. When using a reverse proxy (using the ProxyPass directive with ProxyRequests Off), access control is less critical because clients can only contact the hosts that you have specifically configured.

 

If you require a more flexible reverse-proxy configuration, see the RewriteRule directive with the [P] flag.

 

så du bør ha med linjen ProxyRequests Off

Endret av ThorB
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...