flera webbservrar på samma IP

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

flera webbservrar på samma IP

Inlägg av lillahuset »

Vi har ett system med en webbserver i. Idag hade vi velat ha två burkar på samma IP.
Enkelt tänkte vi först, ge den ena port 80 och den andra port 8080. Problemet är att applikationen använder port 443 (HTTPS) och någon annan jag inte minns.
Applikationen är byggd i javascript och HTML5 om jag fattat rätt. Den visar dynamiska data från ett mätsystem.
Hur brukar man lösa detta? Alltså att dynamiskt välja andra portnummer än 443 och den jag inte minns. Eller sätter man upp routern att routa alla portar man behöver? Funkar det?
LarryXz
Inlägg: 667
Blev medlem: 13 mars 2013, 20:31:08
Ort: Norra Uppland

Re: flera webbservrar på samma IP

Inlägg av LarryXz »

Antar att du menar samma IP utifrån sett och sedan varsin IP lokalt. Isåfall är väl det enklaste att kolla om routern stödjer port forwarding.
Då kan du ställa in, till exempel, så att port 1234 går till port 80 på server1 och port 2345 går till port 80 på server2.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: flera webbservrar på samma IP

Inlägg av lillahuset »

Jo så långt är vi helt överens.
Men jag undrar vad man ska göra med de portar som serverar det dynamiska innehållet.
För mig känns det som feltänk att man ska behöva fler portar än den vanliga HTTP-porten. Men jag vet i princip ingenting om webbprogrammering.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: flera webbservrar på samma IP

Inlägg av sodjan »

> Idag hade vi velat ha två burkar på samma IP.

Med "burkar" menar du webservers eller menar du fysiska servers
med individuella anslutningar till nätverket? I det senare fallet så
kan de självklart inte ha samma IP adress.

Däremot kan man normalt köra flera instanser/kopior av webservern
på samma fysiska server. De får då samma IP adress men svarar på
olika port-nr. Den ena kan köra standard 80 och den andra ett valfritt
port-nr. Det som kan bli ett problem är brandväggar som ni inte har
egen kontroll över som kanske inte släpper igenom valfria portnummer.

När det gäller port forwarding på routern så finns det en del som
enbart stöder att ändra IP adress (men port-nr måste vara samma)
och de finns det som kan ändra både adress och port-nr.

> ...så att port 1234 går till port 80 på server1 och port 2345 går till port 80 på server2.

Om man ändå har olika nummer utåt så finns det ju ingen anledning att
köra båda på adress 80 innanför. Enklare att ha samma port-nr på båda
sidor, då fungerar länkar oavsett var man råkar sitta för tillfället.

> Men jag undrar vad man ska göra med de portar som serverar det dynamiska innehållet.

Vad är det för portar och vad menas med "dynamiskt innehåll".
Användarvisningsbild
ecenier
Inlägg: 1149
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: flera webbservrar på samma IP

Inlägg av ecenier »

Kolla om virtualhost löser ditt problem. http://httpd.apache.org/docs/2.2/vhosts/examples.html
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: flera webbservrar på samma IP

Inlägg av lillahuset »

sodjan: Tanken är att man ska kunna ha flera mätsystem i separata fysiska burkar på samma interna nät som ut mot Internet delar IP men använder olika portar.
Om man tänker sig att varje fysisk burk har en separat IP på det interna nätet och samma port för HTTP (80) är det ju inga problem att låta routern låta tex 8081, 8082, 8083... gå till olika fysiska burkar (tex IP 192.168.17.n) på det interna nätet. Allt frid och fröjd.

Men nu är det så att den som har skrivit applikationen (HTML5 och javascript (om det nu spelar någon roll)) har gjort så att vad jag betraktar som ett antal statiska webbsidor levererar något man kanske kan kalla ett "formulär" (ursäkta min bristande kunskap om aktuell jargong) som innehåller den information som inte ändras dynamiskt om man inte klickar på en länk. Det dynamiska innehållet, siffror, grafer etc levereras visst via en annan port, säg 1689 (minns inte vilken). Sedan används HTTPS någonstans som jag inte vet var och det använder port 443.

Vad är "best praxis" för en sådan applikation? Jag tycker det verkar konstigt att använda fixa portar på det här sättet. När det gäller tex ssh kan (och bör) man ju konfigurera vilken port ssh ska lyssna på.

Som du märker vet jag i stort sett ingenting om webbprogrammering. Och vill egentligen inte veta heller. :)

ecenier: Tvivlar på det. Det här handlar om ett antal små (fysiska) burkar som troligen kör någon lättviktsserver.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: flera webbservrar på samma IP

Inlägg av sodjan »

Man skulle behöva ha arkitekturen uppritad på en whiteboard... :-)
Användarvisningsbild
carpelux
Inlägg: 1950
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: flera webbservrar på samma IP

Inlägg av carpelux »

Vilken webserver kommer du att använda dig av? Är det apache så brukar man som sagts tidigare använda sig av virtualhosts.

Du definierar då helt enkelt alla dina önskade virtuella instanser som olika hosts i din dns, men med samma ip. Sen kan apache särskilja vilket hostnamn som anropas och mapps till önskad instans. Det går ju också att mappa till olika portar om man vill det istället.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: flera webbservrar på samma IP

Inlägg av sodjan »

Ja, men gäller det även utifrån "nätet" så räcker det inte med den
egna DNS'en, då måste man (väl?) regga "riktiga" domäner.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: flera webbservrar på samma IP

Inlägg av Muppis »

En http(s)-proxy löser busenkelt ditt problem med flera maskiner som pratar på samma port, du ger dem ett eget subdomän till ert domännamn och pekar subdomänen på proxyn. Proxyn konfigurerar du att vidarebefodra sagda subdomän till rätt intern ip-adress. Det fungerar klockrent både på HTTP och HTTPS och du slipper komma ihåg konstiga portnummer och vad de kan tänkas gå till.

Problemet däremot är din okända graf-programvara som kanske använder något hemmasnickrat protokoll utan möjlighet till att särskilja dem genom namn. Har du tur kör de också HTTP men helt enkelt på en annan port för att 80 råkade vara upptagen. Är inte det fallet får du tyvärr ta och lära dig lite webbprogrammering så du kan lösa och se var problemet är :)
Nerre
Inlägg: 27182
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: flera webbservrar på samma IP

Inlägg av Nerre »

Du kan köra https på vilken port du vill, men du måste då ha portnumret med i URL:en.

https://www.server.com:4711 fungerar alltså om du har en programvara som lyssnar på port 4711 och klarar SSL.

Även https://www.server.com:80 fungerar om programvaran lyssnar på SSL på den porten.

Det är bara om man utelämnar portnumret som webbläsaren väljer "standardporten" för protokollet.
Användarvisningsbild
carpelux
Inlägg: 1950
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: flera webbservrar på samma IP

Inlägg av carpelux »

sodjan skrev:Ja, men gäller det även utifrån "nätet" så räcker det inte med den
egna DNS'en, då måste man (väl?) regga "riktiga" domäner.
Du måste ha en dns som är authorativ dns för det domän-scope du tänker använda dina klienter i. Sedan får du lägga till dina hostar där (antingen som cname till samma a-record, eller a-records med samma ip) och definiera dem med virtualhost direktiv i apache. T.ex. www1.domain.com, www2.domain.com, www3.domain.com osv.

Edit: Man kan givetvis i värsta fall (eller för test) lägga till önskade hostnamn i klientens hosts-fil också.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: flera webbservrar på samma IP

Inlägg av lillahuset »

Punkt ett: Som sagt, jag vet egentligen ingenting om webbprogrammering. Jag är beredd att lära mig hur man sätter upp "portforwarding" och liknande. Men inte webbprogrammering.


Punkt två: Nej, Apache är INTE det vi använder. Ber om ursäkt om någon känner sig kränkt. Förslag hur man löser det med Apache är ingen hjälp. Ledsen.


Punkt tre: Intressant "input":

sodjan: Varför skulle man behöva riktiga domäner? Jag ifrågasätter inte vad du skriver, jag förstår bara inte.

Muppis: Vi vill helst inte hålla på och batta med domäner. Det är kundens domän. :) Det är möjligt att det är något jag inte fattar och då hoppas jag du vill förklara.
Ärligt talat vet jag inte hur den här graf-programmvaran fungerar men jag tvivlar på att det är hemsnickrat. Det tror jag upphovshenen är för lat för.

Nerre: Men hur gör man om man har "ett knippe" portar man vill använda? Som dessutom är lika i alla webservrar?

Som ni märker famlar jag i mörker. Det här är inte min del i projektet men jag verkar vara den enda som inser det potentiella problemet. Eller också så håller alla andra bara käft.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: flera webbservrar på samma IP

Inlägg av sodjan »

> sodjan: Varför skulle man behöva riktiga domäner? Jag ifrågasätter inte vad du skriver, jag förstår bara inte.

Det var nog inte helt korrekt och det rättades i ett senare inlägg.

> Nej, Apache är INTE det vi använder.

Vill du att vi gissar på en webserver i taget eller kan du säga det direkt istället?

För övrigt så är det alldeles för många obekanta i ekvationen för att det
ska vara speciellt meningsfullt att försöka kommentera det vidare. Antingen
får du ge en lite mer komplett beskrivning eller så får du ta diskussionen
direkt med kunden. Varje gång en lösning föreslås så hittar du något
som omöjliggör just *den* lösningen... :-)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46916
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: flera webbservrar på samma IP

Inlägg av TomasL »

Du får använda olika portnummer i din url.
http://www.server.com:1001 routas till första serverns första port
http://www.server.com:1002 routas till första serverns andra port
http://www.server.com:1003 routas till första serverns tredje port
http://www.server.com:1101 routas till andra serverns första port
http://www.server.com:1102 routas till andra serverns andra port
http://www.server.com:1103 routas till andra serverns tredje port

osv.

I din router sätter du upp regler som vidarbefordrar portarna, typ
*:1001 -> server1ip:serverport1
osv
Exakt hur du gör det i routern får du läsa dig till.

Jag gör själv så, på jobbet.
Har ett antal olika servrar som är tillgängliga utifrån, flera av dem använder samma portar.

Alternativt är ju, beroende på vilken ISP som används att ha olika IP till modemet, och sätta upp den externa DNSen med domännamn för de olika servrarna, gör så också.

mina regler ser ut så här:

Kod: Markera allt

NAT_FORWARD_TCP="extIp1#0/0~1443>192.168.a.b extIp1#0/0~25,80,443>192.168.c.d extIp2#0/0~1723,443>192.168.e.f ExtPortXY>192.168.g.h ExtPortXY2>192.168.i.j~intportQ ExtPortXY3>192.168.k.l~intportQ ExtPortXY4>192.168.m.n~intportQ ExtPortXY5>192.168.o.p~intportQ ExtPortXY6>192.168.q.r~intportQ"
NAT_FORWARD_UDP="ExtPortXY7>192.168.s.t extIp2#0/0~53,500,4500>192.168.u.v"
NAT_FORWARD_IP="extIp2#0/0~47,50>192.168.w.x"
Jag har naturligtvis maskerat IP och portar ovan.
extIP1 och extIP2: två av de externa IP-adresserna jag har till modemet
ExtPortXY... : portnummret som man använder i URLen för att komma åt servern.
intportQ: den interna porten som servern använder för tjänsten (exvis 80 är default för http osv)
Till extIP har jag sedan knutit ett antal olika subdomäner i min leverantörs namn-server

Exchangeservern ligger på eget IP och egen subdomän.
Ekonomisystemet ligger på eget IP och egen subdomän.
SVN, Atlassian, intranet mm ligger på samma IP men olika externa portar och till viss del olika interna portar.
RDP liggfer på samma IP, olika externa portar, routas till resp server som använder samma port.

Snurrar både IIS och APACHE i blandad konfiguration.
Skriv svar