2015-11-05 14 views

risposta

18

Sì, Nginx supporta il server HTTP/2 spinta dal version 1.13.9, pubblicato il 20 febbraio 2018.

Il team di Nginx ha sottolineato nell'originale 1.9.5 blog post che non è stato sostenuto allora.

+0

A partire dal v 1.11.4 il 13 set 2016, questo è ancora vero. –

+0

Qualche notizia su quando il push del server verrà aggiunto a nginx? Aspettando così tanto ... – n1try

-5

È necessario pagare con un abbonamento nginx plus https://www.nginx.com/blog/http2-r7/.

Apache fornisce gratuitamente

https://httpd.apache.org/docs/2.4/mod/mod_http2.html#h2push

+1

Dal tuo URL: "La funzione" Server Push "definita nella RFC HTTP/2 non è supportata in questa release. Le versioni future di NGINX Plus potrebbero includerla." –

+0

Ci sono due URL che ho postato che uno afferma che non lo supporta? –

+0

Dal primo link: "La funzione" Server Push "definita nella RFC HTTP/2 non è supportata in questa release. Le versioni future di NGINX Plus potrebbero includerla." –

14

Edit:

Nginx supporta Push server HTTP/2 dal v1.13.9, pubblicato il 20 febbraio 2018.

Risposta precedente:

N ginx non supporta il push server HTTP/2 a partire da marzo 2017 (v1.11).

Owen Garrett a nginx ha riassunto le ragioni come segue:

  • è una parte non essenziale e facoltativo di http/2

  • se il cliente ha già la cache delle risorse, quindi spingendolo verso di loro potresti sprecare inutilmente larghezza di banda.

  • le specifiche push del server potrebbero cambiare in futuro.

  • Le intestazioni di collegamento come suggerimenti sono utili, ma l'utilizzo è stato ridotto dagli sviluppatori Web.

  • server push è disponibile come parte di SPDY e non è stato utilizzato da molti sviluppatori web.

Leggere i suoi commenti originali here. Questo table descrive con precisione i pro ei contro dei suggerimenti sul server e sul server push.

Personalmente questo mi delude perché penso che questa sarebbe una caratteristica preziosa per gli sviluppatori web disposti a investire il tempo per ottimizzare la velocità delle pagine. So anche che alcuni CDN di grandi dimensioni come Cloudflare hanno implementato la propria versione in nginx per ottimizzare i download di pagina.

+1

Non è tanto uno spreco di larghezza di banda quanto si potrebbe pensare. Le intestazioni per gli oggetti pushed vengono inviate per prime (prima della pagina richiesta) in modo che il client debba avere un po 'di tempo per cancellare i push del server. – StephenKing

+0

@StephenKing se il push del server è stato implementato, il client probabilmente non avrebbe avuto la possibilità di reimpostare prima che i frame relativi alle push del server fossero già arrivati. Quindi probabilmente è uno spreco. Tuttavia, esistono diverse soluzioni ovvie per non sospendere le risorse che potrebbero essere memorizzate nella cache, tra cui l'uso di cookie e la cronologia di log semplice. –

+8

Mi piace come ha detto Owen "l'utilizzo è stato scarso dagli sviluppatori web" - non è questo _because_ Nginx non lo supporta ?! – developius

3

Supporto per server push http/2 è stato aggiunto alla nginx come del 8 Febbraio 2018:

https://hg.nginx.org/nginx/rev/641306096f5b

+0

Ho appena provato, funziona alla grande - è possibile impostare il contenuto statico (server direttamente da NGINX) e backend (a patto che il backend pubblicizzi i collegamenti tramite l'intestazione 'Link'). Ho documentato ciò che ho imparato qui: https://ops.tips/blog/nginx-http2-server-push/ –