Přesměrování domén různých řádů na různé servery

Zdravím,
v Turrisu mám přesměrování portů 80 a 443 na raspberry, kde mi běží webserver. Na Turrisu jsem v LXC kontejneru rozjel NextCloud.
Otázka zní, jak přesměrovat doménu třetího řádu do nextcloudu a doménu druhého řádu na raspberry? Chápu, že to může vyřešit soubor .htaccess. Ten by ale musel běžet na raspberry (moc se mi to nechce řešit na webserveru Turrisu). Nezdržovalo by to komunikaci? Je možné tohle řešit nějak přímo v Turrisu (firewall apod…)?

Příklad:

domena.cz → raspberry (192.168.0.50)
cloud.domena.cz → LXC kontejner v Turrisu (192.168.0.70)

Díky.

EDIT: nejspíš jsem otázku špatně pochopil.

Stačí jen modifikovat DNS těmito dvěma záznamy (ekvivalent /etc/hosts). Už se tu podobné věci v pár vláknech řešily. V tomhle případě asi bude stačit jen přidat ty záznamy do /etc/hosts, ale jistý si nejsem…

Dokumentace pro tohle bohužel chybí.

Pokud předpokládám správně, jedná o přístup z vnější sítě na zařízení v lokální síti (za NATem) - mám pravdu? V tom případě toto řešení fungovat nebude (pokud nebudete mít dvě veřejné adresy).

Kam až mé znalosti sahají, tak toto nepůjde vyřešit na úrovni běžného firewallu, jediné (teoretické) řešení které mě napadá, je nějaká forma proxy serveru (provoz musí být rozdělen až na aplikační úrovni). Ale praktické zkušenosti nemám žádné.

Ano, jedná se o přístup z vnější sítě Internet. Proto by řešení přes přepis v DNS nefungovalo. Napadlo mě vypnout přesměrování na raspberry. A vše řešit přes .htaccess soubor přímo na Turris serveru. Teoreticky by se to dalo řešit kvůli větší bezpečnosti v extra LXC kontejneru, který by požadavek přesměroval na určenou IP. Zatím jsem ve fázi dedukce. Nastuduji, vyzkouším a kdyžtak dám vědět.

Běžné přesměrování fungovat nebude, protože ten druhý stroj je pořád na neveřejné síti (tedy pokud nemáte na mysli přesměrování na jiný port, jak naznačím v bodu 1). Napadají mě dvě možnosti:

  1. druhá služba by byla z venku dostupná na jiném portu (např. 8080, 8443 - turris by tyto porty přesměrovával na adresu lxc kontejneru s NextCloudem) a na raspberry by bylo pro tu druhou doménu nastavené přesměrování na ty nestandardní porty (tohle mi přijde nejjednodušší řešení, ale v adresním řádku prohlížeče prostě bude vidět přesměrování na nestandardní port… což ale myslím nemusí vadit). Případně to celé otočit a směřovat defaultní porty na turris (nebo spíš na ten lxc kontejner) a ty nestandardní porty na raspberry.

  2. využití nějaké formy proxy serveru/load balanceru - který by fungoval jako prostředník a zároveň rozuměl tomu příchozímu požadavku a věděl kam dál to má předat a komu to vrátit (teoreticky si myslím, že by to mělo jít nastavit v nginx a možná i s pomocí apache nebo squidu (ale prakticky jsem to nikdy nezkoušel).

Já bych na Turris nainstaloval nginx a nastavil pro danou doménu přesměrování z nginx.

Příklad

server {
listen 80;
listen [::]:80;

server_name  cloud.domena.cz;
location / {
    rewrite /(.*) /$1 break;
    proxy_pass http://192.168.0.70;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

2 Likes

Mockrát díky! Přesně tohle jsem hledal. :slight_smile: Nyní vše funguje podle představ.