Nginx před Apachem kvůli HTTP/2

Nginx před Apachem kvůli HTTP/2
« kdy: 08. 08. 2022, 06:42:19 »
Ahoj, mám na serveru nainstalovaný Apache s mod_php a Nginxem jako reverzní proxy. Na Apachi bych chtěl zapnout http2 viz. tento návod.

Otázkou je, jestli v takovém případě je ještě potřeba mít Nginx jako reverzní proxy před Apachem, nebo mám místo Apache použít Nginx?
Děkuji za radu
« Poslední změna: 08. 08. 2022, 07:31:38 od Petr Krčmář »


Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #1 kdy: 08. 08. 2022, 07:40:02 »
Je potřeba si nejdřív ujasnit, proč mít takovou konfiguraci s reverzní proxy na jednom serveru. Pokud jen kvůli HTTP/2, tak je to opravdu zbytečné a jeden z nich bych vyhodil.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #2 kdy: 08. 08. 2022, 08:47:46 »
Nginx před Apachem byl proto aby šifroval komunikaci pomocí https, komunikace mezi Nginx a Apachem byla na http a dělal reverzní proxy která směrovala provoz na Apache který řešil interpretaci php skriptů a na .Net serve který dle parametrů v url řešilo obrázky. Obě tyto funkcionality se dají řešit na Apache. Pokud chci zapnout na Apache http2 tak potřebuji https takže reverzní proxy před Apachem asi smysl moc nedává.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #3 kdy: 08. 08. 2022, 09:27:58 »
Apache zvládne prakticky všechno, co nginx, a ještě daleko víc. nginx se používá proto, že je „lehčí“, takže se stejnými zdroji zvládne odbavit větší provoz, než Apache. Pro HTTP/2 nepotřebujete HTTPS – prohlížeče implementují HTTP/2 jen nad HTTPS, ale servery implementují i nešifrované HTTP/2 (označuje se h2c).

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #4 kdy: 08. 08. 2022, 09:44:50 »
Nginx ovšem HTTP/2 na backendy pro reverzní proxy nepodporuje, podle vývojářů to nedává smysl a podpora je jen směrem dopředu ke klientům.


Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #5 kdy: 08. 08. 2022, 10:16:27 »
Nginx ovšem HTTP/2 na backendy pro reverzní proxy nepodporuje, podle vývojářů to nedává smysl a podpora je jen směrem dopředu ke klientům.

Pokud nginx http/2 smer backend nepdporuje (a to se mi fakt zda divne), pak lze pouzit haproxy, caddy apod.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #6 kdy: 08. 08. 2022, 11:07:48 »
Skutečně nepodporuje, řešilo se to před lety, viz zavřený ticket s odkazy do mailing listu.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #7 kdy: 08. 08. 2022, 11:51:09 »
Vzhledem k tomu, že HTTP PUSH přestaly prohlížeče podporovat, není podle mne důvod používat HTTP/2 mezi reverzní proxy a backendem. Získalo by se tím jenom multiplexování spojení, ale to není mezi reverzní proxy a backendem potřeba (prostě se tam naváže tolik spojení, kolik je potřeba).

Takže je otázka, proč vlastně na tom Apache chce petr0707 zapínat HTTP/2.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #8 kdy: 08. 08. 2022, 13:23:53 »
HTTP2 chci na Apache zapnout kvůli zrychlení odezvy webu, otázkou je jestli použít proxy před Apachem nebo ne. Podle tohoto vlákna to nedává smysl, což byla i moje původní úvaha.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #9 kdy: 08. 08. 2022, 14:03:42 »
Zrychlení odezvy ovlivní akorát to, pokud budete mít HTTP/2 mezi prohlížečem a prvním serverem – ve vašem případě tedy aktuálně reverzní proxy nginx. Pokud potřebujete řešit rychlost odezvy, doporučuju nechat tam ten nginx jako reverzní proxy, na tom se vám to bude ladit nejlépe. Můžete tam používat moderní protokoly, dobře řešit cachování, servírovat statické soubory apod.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #10 kdy: 08. 08. 2022, 15:31:57 »
Zrychlení odezvy ovlivní akorát to, pokud budete mít HTTP/2 mezi prohlížečem a prvním serverem – ve vašem případě tedy aktuálně reverzní proxy nginx. Pokud potřebujete řešit rychlost odezvy, doporučuju nechat tam ten nginx jako reverzní proxy, na tom se vám to bude ladit nejlépe. Můžete tam používat moderní protokoly, dobře řešit cachování, servírovat statické soubory apod.

Děkuji za odpověď. Pokud to tedy dobře chápu mezi Nginx a Apachem budu mít HTTP a HTTPS s HTTP/2 budu mít pouze na Nginx směrem ke klientům. V tomto případně by mě ještě zajímalo jestli pro interpretaci PHP na Apache použít mod_php nebo mpm_event. Zase me zajímá rychlost načítání stránek.

Re:Nginx před Apachem kvůli HTTP/2
« Odpověď #11 kdy: 08. 08. 2022, 16:46:02 »
Asi ste myslel php-fpm, mpm-event je o niecom inom. Rychlejsi bude fpm, akurat ma proti mod niekolko omezeni, v zavislosti na aplikacii. Naviac ak pouzijete fmp, tak medziclanok apache bude uplne zbytocny, bude jednoduchsie a rychlejsie ak bude nginx v ulohe fcgi proxy priamo proti fpm.