Meerdere websites/diensten hosten op 1 vast IP-adres

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Byte
  • Registratie: September 2010
  • Niet online
Mijn vraag:
Sindskort ben ik aangesloten op glasvezel waardoor ik graag mijn eigen websites en services zelf wil hosten. Dit wil ik doen door mijn domeinnamen en eventuele subdomeinen te gebruiken. Bij mijn huidige provider heb ik het genoegen om een vast IP te gebruiken. Ik host meerdere websites waardoor meerdere websites op poort 443 binnenkomen. Hoe kan ik ervoor zorgen dat ik mijn websites toegankelijk maak op mijn enkele IP-adres?

Relevante software en hardware die ik gebruik:
  • Tweak als provider met vast IP-adres
  • Ubiquiti Unifi Dream Machine Pro
  • Een Intel Nuc met Vcenter, draaiende:
  1. Een VM met Home Assistant via HomeAssistantOS
  2. Aparte VM's voor mijn toekomstige webservers
  3. Een installatie van NGINX Proxy Manager, deze is nog niet verder geconfigureerd
Wat ik al gevonden of geprobeerd heb:
Zelf heb ik begrepen dat dit op te lossen is d.m.v. een reverse proxy. Dit is voor mij volledig nieuw. De software heb ik al als aparte VM draaien. Het is mij onbekend of dit de beste manier is om dit op te lossen.

[ Voor 2% gewijzigd door Byte op 20-07-2022 12:46 . Reden: Opmaak. ]

Beste antwoord (via Byte op 20-07-2022 13:39)


  • grasmanek94
  • Registratie: Juli 2015
  • Laatst online: 15:38
Byte schreef op woensdag 20 juli 2022 @ 13:13:

Ik neem aan dat ik deze configuratie toe moet passen op elke VM/Nginx webserver die ik draai?
Op je VM's / webservers maakt het niet uit wat je hebt, zolang de web server daarop maar werkt en benaderbaar is voor de proxy machine.

Op je proxy machine configureer je alle domeinen (welk domein) <=> proxy (welke VM) relaties.
Bv config entries voor:

ha.mijndomein.nl <== Proxy Machine == proxy_pass ==> Home Assistant VM
mijndomein.nl <== PM == proxy_pass ==> Je eigen website
nogiets.mijndomein.nl <== PM == proxy_pass ==> Nog een andere VM

(het is vanzelf sprekend dat 'ha' en 'nogiets' een CNAME zijn voor mijndomein.nl)

Stel ik benader jouw IP dan zal de route zo gaan:

Mijn PC => router => Mijn ISP => Jouw ISP => router => Je Proxy Machine

Vanaf je PM kies je waar de connectie verder naartoe gaat dmv proxy_pass / match op domein naam.

[ Voor 4% gewijzigd door grasmanek94 op 20-07-2022 13:20 ]

Alle reacties


Acties:
  • +1 Henk 'm!

  • grasmanek94
  • Registratie: Juli 2015
  • Laatst online: 15:38
Nja je Proxy machine (Waar NGINX op draait, waar je proxy domeinen op hebt, zie https://docs.nginx.com/ng...web-server/reverse-proxy/ ) zet je open voor de wereld (ipv6) of zet je open met NAT naar 80/443. Je hebt een 2e en 3e machine op dezelfde LAN met webservers/services:

code:
1
2
3
4
5
6
7
8
//... configuratie van je nginx zoals domain, poort, etc
// daarna:

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://ip.van.je.2e.machine:8080;
}

herhaal voor 2e domain/3e machine/2e conf..

Voorbeeld van een full configuratie:

https://www.nginx.com/res...art/topics/examples/full/

Acties:
  • +1 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 18:53
SSLH gebruik ik ook weleens, deze kun je voor alle poorten gebruiken.

Acties:
  • +1 Henk 'm!

  • eLScha
  • Registratie: Juli 2005
  • Niet online
Staan er persoonsgegevens opgeslagen in de websites en services die je wilt gaan hosten?

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je hebt helemaal geen proxy ofzo nodig. Je kunt gewoon meerdere websites op 1 IP hosten, en voor SSL heb je dat te danken aan SNI. Je kunt onder nginx/apache gewoon meerdere websites configureren op dezelfde poort, no problem. De browsers die daar niet mee overweg kunnen zijn al laaaaaaang uit roulatie.

[ Voor 50% gewijzigd door RobIII op 20-07-2022 13:02 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • grasmanek94
  • Registratie: Juli 2015
  • Laatst online: 15:38
RobIII schreef op woensdag 20 juli 2022 @ 13:00:
Je hebt helemaal geen proxy ofzo nodig. Je kunt gewoon meerdere websites op 1 IP hosten, en voor SSL heb je dat te danken aan SNI. Je kunt onder nginx/apache gewoon meerdere websites configureren op dezelfde poort, no problem. De browsers die daar niet mee overweg kunnen zijn al laaaaaaang uit roulatie.
En hoe zou je de TS aanraden dit zonder proxy_pass te configureren voor meerdere VMs waarop elk een webserver draait? Ben benieuwd.

Ik ben mij niet van een router bewust die NAT op ipv4 kan doen met SNI.
Voor IPv6 is het natuurlijk makkelijk, elke VM meteen op het internet beschikbaar.

[ Voor 13% gewijzigd door grasmanek94 op 20-07-2022 13:04 ]


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
grasmanek94 schreef op woensdag 20 juli 2022 @ 13:03:
[...]

En hoe zou je de TS aanraden dit zonder proxy_pass te configureren voor meerdere VMs waarop elk een webserver draait? Ben benieuwd.
Oh, ik had 't stukje VM's gemist :P My bad :X Dan idd een reverse proxy.

[ Voor 4% gewijzigd door RobIII op 20-07-2022 13:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Rensjuh
  • Registratie: Juli 2007
  • Laatst online: 20:03
Zijn de verschillende VMs echt nodig?
Anders kun je gewoon af met (voor Apache) een extra vhosts configuratie.

PV Output


Acties:
  • +1 Henk 'm!

  • Byte
  • Registratie: September 2010
  • Niet online
grasmanek94 schreef op woensdag 20 juli 2022 @ 12:53:
Nja je Proxy machine (Waar NGINX op draait, waar je proxy domeinen op hebt, zie https://docs.nginx.com/ng...web-server/reverse-proxy/ ) zet je open voor de wereld (ipv6) of zet je open met NAT naar 80/443. Je hebt een 2e en 3e machine op dezelfde LAN met webservers/services:

code:
1
2
3
4
5
6
7
8
//... configuratie van je nginx zoals domain, poort, etc
// daarna:

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://ip.van.je.2e.machine:8080;
}

herhaal voor 2e domain/3e machine/2e conf..

Voorbeeld van een full configuratie:

https://www.nginx.com/res...art/topics/examples/full/
Ik neem aan dat ik deze configuratie toe moet passen op elke VM/Nginx webserver die ik draai?
RobIII schreef op woensdag 20 juli 2022 @ 13:04:
[...]

Oh, ik had 't stukje VM's gemist :P My bad :X Dan idd een reverse proxy.
Dan denk ik dat de NGINX Proxy Server die ik nu draai voldoet? Gewoon een kwestie van een host toevoegen en klaar is Kees?
eLScha schreef op woensdag 20 juli 2022 @ 12:59:
Staan er persoonsgegevens opgeslagen in de websites en services die je wilt gaan hosten?
Nee, het betreft een weblog, Home assistant server, website voor mijn bedrijfje voor kleine bijverdiensten en in de toekomst misschien een eigen Matrix server. Dit zal allemaal in de toekomst misschien nog wel uitgebreid worden, maar nergens zal persoonlijke data opgeslagen worden.
Rensjuh schreef op woensdag 20 juli 2022 @ 13:08:
Zijn de verschillende VMs echt nodig?
Anders kun je gewoon af met (voor Apache) een extra vhosts configuratie.
Ik begrijp waar je naar toe wil, maar ik draai o.a. Home Assistant op Home AssistantOS en daar wil ik eigenlijk niet vanaf, dus dat alleen al is een aparte server. Verder is mijn kennis qua Docker niet bijzonder groot om er bijvoorbeeld verschillende containers van te maken op een enkele server. Het zijn hele kleine servers waar ik minder dan 100 websiteverzoeken per maand verwacht. Dus deze configuratie (en beheerbaarheid) voldoet voor mij (nog). ;)

[ Voor 7% gewijzigd door Byte op 20-07-2022 13:15 ]


Acties:
  • +1 Henk 'm!

  • Rensjuh
  • Registratie: Juli 2007
  • Laatst online: 20:03
Byte schreef op woensdag 20 juli 2022 @ 13:13:
[...]

Ik begrijp waar je naar toe wil, maar ik draai o.a. Home Assistant op Home AssistantOS en daar wil ik eigenlijk niet vanaf, dus dat alleen al is een aparte server. Verder is mijn kennis qua Docker niet bijzonder groot om er bijvoorbeeld verschillende containers van te maken op een enkele server. Het zijn hele kleine servers waar ik minder dan 100 websiteverzoeken per maand verwacht. Dus deze configuratie (en beheerbaarheid) voldoet voor mij (nog). ;)
Is het dan niet juist zonde van je resources om er verschillende VMs van te maken?
Je hebt verder ook geen docker of zo nodig voor Apache.
Enkel een aanpassing van je vhost en je kunt er op draaien wat je wilt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/www/example2"
    ServerName www.example.org

    # Other directives here
</VirtualHost>

PV Output


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • grasmanek94
  • Registratie: Juli 2015
  • Laatst online: 15:38
Byte schreef op woensdag 20 juli 2022 @ 13:13:

Ik neem aan dat ik deze configuratie toe moet passen op elke VM/Nginx webserver die ik draai?
Op je VM's / webservers maakt het niet uit wat je hebt, zolang de web server daarop maar werkt en benaderbaar is voor de proxy machine.

Op je proxy machine configureer je alle domeinen (welk domein) <=> proxy (welke VM) relaties.
Bv config entries voor:

ha.mijndomein.nl <== Proxy Machine == proxy_pass ==> Home Assistant VM
mijndomein.nl <== PM == proxy_pass ==> Je eigen website
nogiets.mijndomein.nl <== PM == proxy_pass ==> Nog een andere VM

(het is vanzelf sprekend dat 'ha' en 'nogiets' een CNAME zijn voor mijndomein.nl)

Stel ik benader jouw IP dan zal de route zo gaan:

Mijn PC => router => Mijn ISP => Jouw ISP => router => Je Proxy Machine

Vanaf je PM kies je waar de connectie verder naartoe gaat dmv proxy_pass / match op domein naam.

[ Voor 4% gewijzigd door grasmanek94 op 20-07-2022 13:20 ]


Acties:
  • +1 Henk 'm!

  • dirkv89
  • Registratie: Juni 2008
  • Laatst online: 13:05
NAT poorten 80 en 443 naar de NGINX server en gebruik de NGINX server als reverse proxy voor al je interne hosts, NGINX Proxy Manager heeft een mooie GUI waar in je dit allemaal kunt configureren, bijkomend voordeel is dat je met LetsEncrypt meteen al je verbindingen kunt voorzien van een SSL certificaat.

Acties:
  • +1 Henk 'm!

  • Byte
  • Registratie: September 2010
  • Niet online
Rensjuh schreef op woensdag 20 juli 2022 @ 13:17:
[...]


Is het dan niet juist zonde van je resources om er verschillende VMs van te maken?
Je hebt verder ook geen docker of zo nodig voor Apache.
Enkel een aanpassing van je vhost en je kunt er op draaien wat je wilt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/www/example2"
    ServerName www.example.org

    # Other directives here
</VirtualHost>
Je hebt zeker gelijk hoor. Misschien dat ik hier in de toekomst naar kijk. Voor nu vind ik het belangrijk om mijn websites bij mijn hoster weg te halen. Dit scheelt op termijn een hoop geld. Qua resources heb ik nog voldoende beschikbaar, maar qua efficiëntie en misschien ook wel beheerbaarheid zal het zeker schelen. Ik zal je advies in ieder geval meenemen.
grasmanek94 schreef op woensdag 20 juli 2022 @ 13:19:
[...]

Op je VM's / webservers maakt het niet uit wat je hebt, zolang de web server daarop maar werkt en benaderbaar is voor de proxy machine.

Op je proxy machine configureer je alle domeinen (welk domein) <=> proxy (welke VM) relaties.
Bv config entries voor:

ha.mijndomein.nl <== Proxy Machine == proxy_pass ==> Home Assistant VM
mijndomein.nl <== PM == proxy_pass ==> Je eigen website
nogiets.mijndomein.nl <== PM == proxy_pass ==> Nog een andere VM

(het is vanzelf sprekend dat 'ha' en 'nogiets' een CNAME zijn voor mijndomein.nl)

Stel ik benader jouw IP dan zal de route zo gaan:

Mijn PC => router => Mijn ISP => Jouw ISP => router => Je Proxy Machine

Vanaf je PM kies je waar de connectie verder naartoe gaat dmv proxy_pass / match op domein naam.
Helemaal duidelijk.
Ik zal mij vanavond verder verdiepen in de NGINX Proxy Manager. Volgens mij heb ik nu al de juiste tool gevonden voor deze taak.

__
@iedereen
Bedankt voor de adviezen en het meedenken. Het wordt vanavond stoeien met de proxy manager :)
Pagina: 1