Inoltra i nomi host differenti a diversi IP interni tramite il router NAT

Ho un indirizzo IP pubblico, un router e più server dietro il router.

Vorrei inoltrare domini diversi (tutti utilizzando HTTP) attraverso il router a diversi server.

Per esempio:

example1.com => 192.168.0.110 example2.com => 192.168.0.120 foo.example2.com => 192.168.0.130 bar.example2.com => 192.168.0.140 

Capisco che questo potrebbe essere realizzato utilizzando l'invio di porte, ma ho bisogno di tutti gli host in esecuzione sulla port 80.

Ho trovato alcune informazioni su IP masquerading, ma ho trovato questo difficile da capire, e non sono sicuro se è quello che sto dopo.

Un'altra soluzione che ho trovato è dirigere tutto il traffico al server Proxy inversa, che invia le richieste al server appropriato. Che cosa su iptables?

Sto utilizzando un router Billion 7404 VNPX. C'è una caratteristica che questo router ha che può farlo?

Sono queste le mie sole opzioni? Ho perso qualcosa di completamente? Si consiglia gli altri?

Ho cercato intorno, ma non credo che stia colpendo le parole chiave corrette.

  • Grande numero di tentativi di accesso ssh
  • Come redirect il traffico VPN su OS X
  • Routing tra istanze EC2 che non vengono trasmesse
  • inoltro cisco ip nat / port
  • Problema di routing IPv6
  • opvnvpn: indirizzamento dei nodes in LAN-behinds
  • Iproute2: Routing con più reti e più gateway
  • L'IP privato viene routed via Internet
  • 2 Solutions collect form web for “Inoltra i nomi host differenti a diversi IP interni tramite il router NAT”

    La soluzione migliore sarebbe quella di utilizzare un proxy inverso HTTP. Per questo puoi usare:

    • apache con mod_proxy
    • libbra
    • calamaro
    • nginx

    Stiamo usando apache con mod_proxy, ma penso di andare con libbra.

    Come un apparecchio hardware è ansible utilizzare un Switch Service Service di Cisco. Vedere: http://www.cisco.com/it/US/products/hw/contnetw/ps792/index.html

    Ho avuto un'idea e vorrei sapere se qualcuno ha delle risposte.

    Se uso l'idea Proxy Reverse, penso di poter risolvere il problema semplicemente. Sto già utilizzando Nginx sugli altri server, quindi questo è il mio server di scelta per un Reverse Proxy.

    Al router, inoltro tutte le connessioni in arrivo sulla port 80 al mio server Reverse Proxy. Ho Nginx in esecuzione su questo server con il seguente file di configuration:

     server { listen *:80; location / { proxy_pass http://$host; } } 

    Quello che sembra fare è proxy la richiesta allo stesso host. Ma ecco il trucco, nel mio file / etc / hosts mapperò tutti i domini ai loro IP interni.

     182.168.0.110 example1.com 182.168.0.120 example2.com 182.168.0.130 foo.example2.com 182.168.0.140 bar.example2.com 

    Quindi il server Proxy inverserà l'host richiesto allo stesso host, ma a questo punto dovrebbe cercare il file host locale e mappare l'indirizzo IP interno. Significa anche che posso "impostare e dimenticare" il file di configuration Nginx.

    Un problema potenziale è che se un nome host locale non è stato configurato, il Reverse Proxy invia la richiesta all'esterno. Tuttavia, penso che NAT smetterà di bloccarsi in un ciclo infinito.

    Questa soluzione sembra funzionare nella mia testa, e sulla carta, ma non sarò in grado di impostare questo per un po '.

    Qualcuno può vedere qualche motivo per cui questo non funziona?

    Grazie.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.