Portál AbcLinuxu, 19. dubna 2024 09:17


Dotaz: Přesměrování http požadavku na určitý port podle "Host:"

9.4.2007 18:25 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Přesměrování http požadavku na určitý port podle "Host:"
Přečteno: 1001×
Odpovědět | Admin
Zdravím,

potřeboval bych nějak vyřešit problém, jak přesměrovat http požadavake na určitý port, přičemž údaje o tom, který požadavek má jít na který port budou uloženy v nějaké databázi a pro změnu nastavení by nemělo být nutné restartovat danou službu (nejspíš proxy, že?) Třeba takhle:

Takže nejspíš potřebuju proxy, která bude umět zanalyzovat entitu "Host:" http požadavku, tu porovnat s údaji v databázi a podle toho požadavek přesměrovat. Nevíte někdo o něčem takovém? Vím, že jsem možná dost náročný, tzn. pokud byste věděli o něčem, co by tohle zvládalo, jen by se to třeba muselo pro změnu nastavení restartovat, nebo by to data nesosalo z databáze, podělte se též :) Díky moc

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.4.2007 19:05 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dala by se použít reverzní proxy v Apache. A dají se s ní dělat všelijaké voloviny. :-)

Třeba tohle přepošle požadavek serveru na jinačí server a ještě dokumentům po cestě obmění jeden adresář (sám to používám k přestylování serveru, k němuž nemám správcovská práva :-)).
<VirtualHost ip_adresa:port>
        …
        ProxyRequests Off
        <Proxy *>
                Order allow,deny
                Allow from all
        <Proxy>
        <Location /dir/>
                Redirect /dir/css/ http://někam/jinam/css/
                ProxyPass http://jinačí_server/
                ProxyPassReverse http://jinačí_server/
                Order allow,deny
                Allow from all
        </Location>
</VirtualHost>
9.4.2007 19:09 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"

To mě taky napadlo, ale radši bych něco, kde nastavení budou v databázi. Taky by se hodilo něco méně těžkotonážního, používat Apache jako proxy mi přijde jako lehký overkill (i když i tuto možnost samozřejmě uvažuju). Na tomto řešení mi vadí hlavně to, že bych musel pro každého VirtualHosta zasahovat do konfiguráku a Apache restartovat.

9.4.2007 21:26 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak jsem "našel" tinyproxy, která umí, co potřebuji, ale vždy se musí měnit konfigurák a proxy restartovat. Takže - za každou radu budu pořád rád :)

MMMMMMMMM avatar 10.4.2007 00:23 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Zdar, ted pouzivam jako proxy filtr Privoxy web proxy (donedavna jsem mel Squid) - jednoduse se da spravovat pres web a mozna jsem nasel, co bys potreboval http://config.privoxy.org/user-manual/actions-file.html#FILTER-CLIENT-HEADERS
10.4.2007 09:58 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"

Hmm, tak to nevím. Protože já nepotřebuju měnit hlavičky požadavku, já se na ně jenom potřebuju podívat a nějak v konfiguráku nastavit, který požadavek má jít kam. Jinak jsem zapomněl zmínit, že by to měla být reverzní proxy, ale tak se dá snad nastavit všechny proxy (relativně snadno). Pokud jsem mimo, zkus prosím napsat nějaký příklad konfigurace, jak to s Privoxy použít. mě to prostě nedocvaklo ...

11.4.2007 08:06 M
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
ach tak, tak to nic. to ja pochopil spatne :)
10.4.2007 13:41 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pro lighttpd to zařídí tato konfigurace:
$HTTP["host"] == "a.example.org" {
    proxy.server  = ( "" => ( ( "host" => "127.0.0.1, "port" => 8080 )))
}
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
10.4.2007 14:53 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"

Super, to je taky dobré. Sice je pravda, že použití lighttpd jen pro tento účel je dosti podobné jako třeba použití Apache, kterého jsem se chtěl vyvarovat a stejně jako v předchozím případě (Tinyproxy, Apache) tohle řešení vyžaduje restart služby, ale přesto moc děkuji :)

10.4.2007 15:08 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Nevyžaduje restart, stačí mu poslat signál aby znovu načetl konfiguraci (stejně jako u Apache).
10.4.2007 15:11 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"

Aha, super. Jenom mě to trošku zaráží - pokud přidám do Apache VHost, tak taky stačí znovunačíst konfiguraci? Protože spousta lidí na různých fórech si stěžuje, že při každém přidání VHosta do Apache ho musí restartovat a že to shodí requesty, které Apache obsluhuje a podobně. Takže ... dobře, věci jsou jinak :) Díky za informaci.

10.4.2007 15:43 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
IMHO by to nemělo být potřeba, ale Apache už nějaký ten pátek nepoužívám, takže si raději najdi nějaký důvěryhodnější zdroj informací. U lighttpd to určitě jde.
10.4.2007 16:10 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"

OK, díky moc :)

10.4.2007 20:11 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Stačí signál. Ale co se stane s rozpracovanými činnostmi, to nevím.
10.4.2007 22:20 daeltar | skóre: 13 | blog:
Rozbalit Rozbalit vše Re: Přesměrování http požadavku na určitý port podle "Host:"
Vlákna se starou konfiguraci jakmile nic neobsluhují jsou ukončována a na jejich místě se vždy jedno-za-jedno objeví nové vlákno s již "novou" konfigurací.

Tj rozpracované požadavky v klidu obslouží přeživší vlákna s "starou" konfigurací. Jen nebudou přijímat spojení nová.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.