Flera servrar på samma nätverk, men olika subdomäner?

Permalänk
Medlem

Flera servrar på samma nätverk, men olika subdomäner?

Tjena, har slitit håret flera kvällar i rad för att försöka få det här att funka.

Så jag har då min domän hos google domains, jag har dynamisk DNS till "*.mindomän.se".

På serversidan har jag en proxmox server med en nextcloud container som jag då vill komma till med "nextcloud.mindomän.se", och sen även andra tjänster på "tjänstnamn.mindomän.se"

Jag har även en nginx container som jag försökt få att dirigera om trafiken till min nextcloud container. Routern har portforward till nginx containern och jag har fått upp default sidan så vet att det funkar

Vanligtvis när jag kört containers via docker så är allt på localhost med olika portar, men med proxmox så dyker de upp med unik IP och MAC.

Min senaste nginx config så har jag testat med certbot:

server { server_name nextcloud.mindomän.se; location / { proxy_pass https://192.168.1.101:443; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/nextcloud.mindomän.se/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/nextcloud.mindomän.se/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = nextcloud.mindomän.se) { return 301 https://$host$request_uri; } # managed by Certbot server_name nextcloud.mindomän.se; listen [::]:80; listen 80; rewrite ^ https://$server_name$request_uri? permanent; }

Men började med en basic config:

server { listen 443; server_name nextcloud.mindomän.se; location / { proxy_pass https://192.168.1.101:443; } }

Är jag helt fel ute eller?

Permalänk
Medlem

Du ska kolla på reverse proxy, så du är på rätt spår.

https://stackoverflow.com/questions/65620368/nginx-reverse-pr...

Permalänk
Sötast

https://nginxproxymanager.com/ gör detta busenkelt.
Tänk gui för att konfa nginx reverse proxy.

Permalänk
Medlem
Skrivet av Allexz:

https://nginxproxymanager.com/ gör detta busenkelt.
Tänk gui för att konfa nginx reverse proxy.

https://nginxproxymanager.com/screenshots/proxy-hosts.png

Ohlala.

Permalänk
Medlem
Skrivet av Kalasis:

Du ska kolla på reverse proxy, så du är på rätt spår.

https://stackoverflow.com/questions/65620368/nginx-reverse-pr...

Ser inte hur den skiljer sig från min basic config? Testade även lätta till snedsträck efter port men det gjorde ingen skillnad.

Permalänk
Medlem
Skrivet av Allexz:

https://nginxproxymanager.com/ gör detta busenkelt.
Tänk gui för att konfa nginx reverse proxy.

https://nginxproxymanager.com/screenshots/proxy-hosts.png

Tackar, det här ska undersökas!

Permalänk
Medlem

OK, lyckades lösa det!

På min google DNS så behövde jag ändra min DDNS från *.mindomän.se till mindomän.se den ändrar IP på min A record. Sen så satte jag en CNAME record *.mindomän.se att peka på mindomän.se.

Jag tror att min nginx config kan ha fungerat men använder nu https://nginxproxymanager.com/ som tipsades ovan, där i har jag en proxy host med sorce: nextcloud.mindomän.se, destination: https://192.168.1.101:443, jag har även aktiverat SSL och Force SSL.

Så det jag lärt mig är att ha min A record att peka på *.mindomän.se inte fungerade.

Permalänk
Medlem
Skrivet av swesen:

OK, lyckades lösa det!

På min google DNS så behövde jag ändra min DDNS från *.mindomän.se till mindomän.se den ändrar IP på min A record. Sen så satte jag en CNAME record *.mindomän.se att peka på mindomän.se.

Jag tror att min nginx config kan ha fungerat men använder nu https://nginxproxymanager.com/ som tipsades ovan, där i har jag en proxy host med sorce: nextcloud.mindomän.se, destination: https://192.168.1.101:443, jag har även aktiverat SSL och Force SSL.

Så det jag lärt mig är att ha min A record att peka på *.mindomän.se inte fungerade.

Har bokmärkt den här tråden och printscreenat din lösning. Ska sätta mig med en liknande grej på semestern och detta har varit min stora farhåga

Permalänk
Medlem
Skrivet av MsSmith:

Har bokmärkt den här tråden och printscreenat din lösning. Ska sätta mig med en liknande grej på semestern och detta har varit min stora farhåga

Det kanske blev lite svamligt, kanske ska skriva ner det mer i steg.

Jag använder https://domains.google.com/ då det gick att uppdatera min ej fasta publika IP enkelt via min router(ASUS RT-AX56U).

Röd: Min domän, Gul: toppdomän, Blå: publik IP

Min A record pekar på min IP som uppdateras av min router.
En CNAME record med ett wildcard (*) som subdomän, det gör att alla subdomäner pekas till min IP tillslut.

I min router så är portarna 80 (http) och 443 (https) port forwardade till servern som kör en https://nginxproxymanager.com/ docker container.

I NGINX Proxy Manager så har jag lagt till en Proxy Host för varje server, viktigt är att http/https och port nr stämmer med vad den servern förväntar sig. Det bör vara samma som du skriver in i webbläsaren för att koppla upp dig över LAN. Om servern använder websockets så behöver den funktionen aktiveras.

Certifikat hanteras av NGINX Proxy Manager och Force SSL påslaget.

Permalänk
Medlem

Jag skulle vara försiktig med följande nginx rad innan man fått det hela att fungera:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

preload-direktivet är besvärligt och tidskrävande att ångra om man får problem med ssl-config:en och vill återgå till vanlig HTTP.