Integrace s aplikacemi za směrovači pomocí reverzního proxy serveru

Řešení vzdáleného připojení pro pokladnu v cloudu pomocí reverzního proxy serveru Pracoval jsem na cloudové webové aplikaci POS, která potřebovala odesílat požadavky HTTP POST a G...

Poptat web

04. 02. 2025

Integrace s aplikacemi za směrovači pomocí reverzního proxy serveru

Řešení vzdáleného připojení pro pokladnu v cloudu pomocí reverzního proxy serveru

Pracoval jsem na cloudové webové aplikaci POS, která potřebovala odesílat požadavky HTTP POST a GET na koncové body API poskytované desktopovými aplikacemi umístěnými za směrovačem. Skutečným problémem nebylo jen odesílání požadavků - šlo především o to, jak se k těmto počítačům spolehlivě dostat. Zde je návod, jak jsem to vyřešil.

Zkoumání možných řešení

1. Přesměrování portů

Prvním řešením, které mě napadlo, bylo přesměrování portů. Aby to však fungovalo, musely být splněny dvě podmínky:

  • Směrovač musel podporovat přesměrování portů.
  • Stroje musely mít statické IP adresy.

Bohužel ani jedna z těchto podmínek nebyla zaručena. Mnoho klientů mělo dynamické IP adresy a jejich směrovače se lišily, což znamenalo, že některé podporovaly přesměrování portů, zatímco jiné ne. Abych vyřešil problém s dynamickými IP adresami, zvažoval jsem použití dynamické služby DNS (DDNS), například No-IP. To nám umožnilo namapovat dynamické IP na statický název hostitele. Avšak kvůli nejednotnosti podpory směrovačů pro přesměrování portů i DDNS byl tento přístup u všech klientů nespolehlivý.

2. Ngrok

Další možností, kterou jsem zvažoval, bylo použití služby Ngrok, která poskytuje bezpečné tunelování pro místní servery. Nemohli jsme ho však použít, protože:

  • Potřebovali jsme větší kontrolu nad řešením.
  • Potřebovali jsme něco škálovatelného, což znamená, že jsem nechtěl vytvářet účet pro každého klienta a spravovat ho - to by bylo příliš únavné.
  • V naší lokalitě to nebylo povoleno, takže to nebylo možné.

3. Reverzní proxy jako tunel

Protože přesměrování portů a Ngrok nebyly použitelné, prozkoumal jsem další možnost: použití reverzního proxy serveru k vytvoření tunelu mezi naším serverem a klientskými počítači. Tehdy jsem narazil na FRP (Fast Reverse Proxy), výkonný nástroj, který umožňuje vystavit místní servery za NAT nebo firewallem internetu.

Implementace protokolu FRP jako reverzního proxy serveru

Aby to fungovalo, potřeboval jsem VPS (virtuální privátní server), který by fungoval jako náš centrální reverzní proxy server. Zde je návod, jak jsme ho nastavili:

  1. Nastavení serveru reverzního proxy serveru
    Na VPS jsme nainstalovali protokol FRP, který sloužil jako most mezi cloudovým POS a klientskými počítači.

  2. Konfigurace klientských počítačů
    Každý klient se potřeboval připojit k reverznímu proxy serveru, proto jsme jim poskytli:

    • Konfigurační soubor, který zahrnoval přiřazení jedinečné subdomény jejich počítači.
    • Dávkové skripty, které by se automaticky spouštěly při přihlášení a navázaly připojení.
  3. Automatizace připojení
    Jakmile byl klientský počítač zapnutý a přihlášený, skript zajistil jeho automatické připojení k našemu reverznímu proxy serveru. To znamenalo, že naše cloudové pokladny nyní mohly posílat požadavky na subdoménu a reverzní proxy je směrovala na správný stroj.

Závěrečné myšlenky

Po zvážení čtyř možných řešení:

  1. Přesměrování portů (Nespolehlivé z důvodu nekonzistence podpory směrovače)
  2. Přesměrování portů + DDNS (Lepší, ale stále nekonzistentní v různých směrovačích)
  3. Ngrok (Chyběla kontrola, problémy se škálovatelností a v naší lokalitě to nebylo povoleno)
  4. Reverzní proxy server (Spolehlivé a fungující ve všech nastaveních)

Jako nejlepší se ukázalo řešení s reverzním proxy serverem. Odstranilo závislost na konfiguraci směrovače a statických IP adresách a poskytlo bezproblémový způsob bezpečného a spolehlivého připojení našich cloudových pokladen ke klientským počítačům.

Tento přístup nejenže vyřešil náš problém s připojením, ale také usnadnil nástup nových klientů, kteří si museli stáhnout pouze několik souborů a přihlásit se do svých počítačů. Nyní je klientův počítač při každém zapnutí automaticky dosažitelný - není nutná žádná ruční konfigurace.

Navíc se toto řešení pro nás stalo novým zdrojem příjmů, protože ho společnost začala nabízet jako doplňkovou službu. Klienti, kteří potřebovali vzdálený přístup ke svým místním pokladním systémům, si mohli tuto funkci předplatit, což zvýšilo hodnotu naší nabídky a zároveň generovalo další příjmy.

Původní článek publikoval Nabil Hassen.