Nginx: rozdělení serverů do samostatných souborů

Re:Nginx: rozdělení serverů do samostatných souborů
« Odpověď #15 kdy: 11. 05. 2021, 13:29:45 »
Reverzny proxy je nginx a backend je apache 2.4.x
Cital som, ze v starsich apache 2.2.x sa pouzival mod_rpaf, ale v novsich je lepsie pouzit mod_remoteip.
Takze modul som povolil. vytvoril som /etc/apache2/mods-available/remoteip.conf, ktoreho obsahom je (a.b.c.d je IP reverzneho proxy)
Kód: [Vybrat]
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy a.b.c.d
restart apache
Nefungovalo to. Ked som vsak tie 2 directivy pouzil v konfiguraku virtualhostu, tak teraz to funguje. Cize ked mam viac vhostov,  tak to musim dat do kazdeho. Asi mam nieco zle, kedze to nefunguje globalne.

A mate ten remoteip i v mods-enabled?


Re:Nginx: rozdělení serverů do samostatných souborů
« Odpověď #16 kdy: 11. 05. 2021, 17:09:57 »
Ano je tam.
Ale ma tam byt symlink aj na conf, lebo ten tam nie je. A ked som tam symlink spravil, tak to tiez nefunguje

Kód: [Vybrat]
ln -s /etc/apache2/mods-available/remoteip.conf /etc/apache2/mods-enabled/remoteip.conf

Re:Nginx: rozdělení serverů do samostatných souborů
« Odpověď #17 kdy: 12. 05. 2021, 20:19:38 »
Jediné, co je potřeba u RealIP pohlídat je to, aby to zpracovávalo hlavičky jen z důvěryhodné proxy, protože jinak by tam šlo podvrhnout IP adresu.
Nabíme se o nastavení nginxu, který funguje jako proxy server. Ten před sebou žádný jiný proxy server nemá, tudíž bere vždy IP adresu klienta. IP adresy v HTTP hlavičkách naopak musí mazat, protože pokud je taková hlavička přítomná v požadavku od klienta, je to pokus o podvrh.

Když použijete RealIP, na bude to fungovat hned.
RealIP se používá v případě, kdy nginx je cílový server, který má před sebou nějaký proxy server. Tady je situace opačná – nginx je proxy server, který předává požadavky dál do WordPressu.

Proxy server funguje tak, že klient (třeba prohlížeč) neváže TCP/IP spojení s proxy serverem. Proxy server přečte požadavek, naváže nové spojení s cílovým serverem ze své IP adresy (z jiné samozřejmě nemůže), pošle cílovému serveru požadavek klienta (případně nějak upravený) a do požadavku do speciálních hlaviček předá IP adresu původního klienta.

Když cílový server (v tomto případě WordPress na nějakém PHP) zjišťuje adresu klienta, musí se nejprve podívat, zda je tam nastavená příslušná hlavička, a teprve pokud není, použije adresu klienta z TCP/IP spojení. To, že se má používat IP adresa z HTTP hlaviček, je obvykle potřeb zapnout – jinak by klient mohl podvrhnout svou IP adresu tak, že by nastavil tu HTTP hlavičku. Proto se přebírání IP adresy z HTTP hlaviček zapíná jenom tam, kde jsem za proxy serverem a vím, že HTTP hlavičku mi bude nastavovat ten.
Asi to nebude OPov prípad, ale predpokladať že pred mojím proxy serverom nieje žiaden iný je chýba, stačí ak máš CDN a už to je reverse proxy pred tvojím, stačí že tam máš load balancer a už máš ďalší proxy server pred tvojím, to máš 3 proxy server v reťazi. Bez realIP a parsovanim z http forwarded for hlaviciek si neporadíš.