Portál AbcLinuxu, 8. května 2025 13:35

Dotaz: Apache jako reverzní proxy

26.2.2020 10:47 JSOB | skóre: 17 | blog: JSOB
Apache jako reverzní proxy
Přečteno: 528×
Odpovědět | Admin
Mám v síti za firewalem www server, kde mi běží Apache a nějaké weby. Server má vnitřní IP a firewalem je na něj nasměrovaný provoz zvenčí přes veřejnou IP. Dále mám v síti server, kde mi běží web aplikace na doméně něco.example.cz. V ramci lan kde, máme i svůj DNS , mi to samozřejmě běhá jak má. Teď, ale přišel požadavek to zpřístupnit i z venku a veřejné IP nejsou. Tudíž to z venku nasměrovat na ten www server a přes reverzní proxy to poslat na ten server, kde to běží. Ja s tím před časem laboroval a nějak jsem to nepochopil. Mám proto otázku. Muže být název domény(něco.example.cz) stejný jak v internetu tak i v LAN? Když jsem zkusil do konfiguráku dát směrování z Apache přimo na IP, kde běží jako virtualhost ta webová aplikace, přivítala mě úvodní stránka Apache z globální konfigurace.

Jak to prosím co nejlépe vyřešit?


Řešení dotazu:


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

Odpovědi

26.2.2020 11:28 core
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná by pomohlo do konfigurace virtualhostu na reverzní proxy přidat

ProxyPreserveHost On
Max avatar 26.2.2020 11:51 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já se stejnými názvy neměl dobré zkušenosti, viz: Split DNS - používáte to někdo?.
Takže sice můžeš použít stejné názvy z venku i zevnitř, ale pokud máš nějaké klienty, co se přepínají mezi venkem a vnitřkem, tak budeš mít problémy s DNS cache na klientech.
A to byl důvod, proč pro venkovní přístup používám jiné dns jméno.
Zdar Max
Měl jsem sen ... :(
Josef Kufner avatar 26.2.2020 20:01 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Doma to používám bez problémů. Na routeru je bind, který má dva pohledy, jeden pro Internet, druhý pro lokální síť.

Cache u cestujících klientů není problém, neboť se zahodí při změně sítě. Nevím jak Windows, ale na Linuxu i na Androidu to fungovalo samo od sebe.
Hello world ! Segmentation fault (core dumped)
26.2.2020 12:01 MP
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano muze.

Bud budete v ramci firmy komunikovat pres neco.example.com pomoci externi ip, nebo to muzete mit jak na externi, tak na interni (views v bindu), zalezi na tom, jak jsou nastavena externi/interni DNS.

Proxy pro ten web pak na zaklade toho bude poslouchat bud na jedne nebo dvou ip.

Nejlepe to vyresit s jednou ip adresou na firewallu tak, ze veskery web provoz je smerovan na vnitrni ip proxy serveru a z nej jsou vsechny weby smerovany na vnitrni ip jednotlivych www serveru.

Nebo si zaridit dalsi externi ip.
Řešení 1× (Filip Jirsák)
26.2.2020 12:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stručná verze: asi bude stačit zapnout ProxyPreserveHost On.

Celá verze: Trochu jsem se v tom ztratil, možná jste některé informace nenapsal. Jak je to s těmi názvy? Máte teď web na veřejné adrese třeba www.example.cz, vedle toho máte něco.example.cz přístupné jen z vnitřní sítě a chcete to nově zpřístupnit pod adresou něco.example.cz i z internetu?

Možné to určitě je, akorát pokud chcete z vnitřní sítě přistupovat k tomu názvu přímo a z internetu přes toho Apache, musíte mít ve vnitřní síti upravený překlad DNS, aby vracel tu vnitřní IP adresu. Pokud pak ten Apache je ve vnitřní síti, nastavte mu jako adresu toho proxovaného serveru také něco.example.cz – přeloží si ho na vnitřní IP adresu a připojí se k tomu správnému serveru. Pokud Apache není v síti, kde by se ten doménový název překládal na vnitřní IP adresu, použijte v odkazu na cílový server jeho IP adresu a zapněte volbu ProxyPreserveHost On, aby se cílovému serveru předávala hlavička Host z požadavku klienta (jinak tam Apache dosadí tu IP adresu, kterou volá, a cílový server nebude vědět, který virtual host má servírovat).
26.2.2020 12:34 JSOB | skóre: 17 | blog: JSOB
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Tak tomu říkám vyčerpávající odpověď. Bude stačit asi to ProxyPreserveHost On. Doma mam jako samostatny server reverzni proxy Nginx a vnitřní DNS na Mikrotiku kvuli tomu. Existuje pro Nginx ekvivalent tohoto parametru abych mohl zadat jen cilovou IP a ten DNS na Mikrotiku nepoužívat?
Řešení 1× (Filip Jirsák)
Max avatar 26.2.2020 13:03 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
U nginx stačí toto:
server {
        listen   80;
        server_name  www.neco.tld;

        # auto přesměrování na https
        return 301 https://$host$request_uri;

        access_log  /var/log/nginx/www.neco.tld.proxy.log upstreamlog;
        access_log  /var/log/nginx/www.neco.tld.access.log;
        error_log /var/log/nginx/www.neco.tld.error.log;

        location / {
                proxy_pass         http://192.168.1.1;
                include /etc/nginx/custom/proxy_api.conf;
        }
}
Kde v proxy_api.conf je default v podobě :
real_ip_header X-Real-IP;

client_max_body_size       10m;
client_body_buffer_size    128k;

proxy_connect_timeout      30;
proxy_send_timeout         20m;
proxy_read_timeout         20m;

proxy_buffer_size          4k;
proxy_buffers              4 32k;
proxy_busy_buffers_size    64k;
proxy_temp_file_write_size 64k;

# for websocket working :
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
Zdar Max
Měl jsem sen ... :(
26.2.2020 13:48 JSOB | skóre: 17 | blog: JSOB
Rozbalit Rozbalit vše Re: Apache jako reverzní proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyřešeno. Zkusil jsem obě varianty. Zkusil jsem i stejný nazev domeny s tím že jsem ji přidal s patřičným směrováním na tom www serveru do hosts. Fungovalo to. Nicméně jsem usoudil, že varianta s ProxyPreserveHost On bude lepší. Všem děkuji.

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.