Nginx reverse-proxy ve arka uç web sunucusu arasında HTTP / 2.0 kullanın


19

HTTP / 2.0 yapabilen bir arka uç web sunucusu önünde nginx ters-ssl-proxy olarak kullanıyorum.

Ben nginx HTTP / 2.0 yerine HTTP / 1.1 üzerinden arka uç sunucusuna istekleri proxy olduğunu fark ettim. Nginx'e şifrelenmemiş bir HTTP / 2.0 bağlantısı kullanmasını söylemek mümkün mü? Bu performansı artırır mı?


http2 özellikleri şifreleme gerektirmediğini söylese de, nginx şu anda ssl olmadan http2'yi desteklememektedir.
Marco

Bir https: // adresi belirtmiş olsaydım HTTP / 2.0 kullanır mıydı? O zaman sanırım HTTP / 1.1 kullanmak daha iyi. Trafiği iki kez şifrelemek mantıklı değil ve HTTP / 2.0'ın SSL ile performansı muhtemelen SSL olmadan HTTP / 1.1 kadar iyi olmaz, değil mi? Yani, bu tür ters-ssl-proxy'yi işe yaramaz yapar;)
S1lentSt0rm

Aynı makinedeyken ön ve arka uç sunucusu arasındaki trafiği şifrelemeniz gerçekten önemli değildir. performansa gelince: http2, şifrelemede bile http1.1'den biraz daha hızlıdır. bir fark yaratıp yaratmayacağını söyleyemem.
Marco

Yanıtlar:


21

Bunu buldum : https://trac.nginx.org/nginx/ticket/923

Öngörülebilir gelecekte proxy modülünde HTTP / 2 desteği uygulama planı yok

Bilette belirtilen bir postadan alıntı:

Uygulamanın neredeyse hiçbir anlamı yoktur, çünkü ana HTTP / 2 avantajı, birçok isteği tek bir bağlantıda çoğaltmaya izin vermesidir, bu nedenle [neredeyse] eşzamanlı istek sayısı sınırını kaldırır - ve konuşurken böyle bir sınır yoktur kendi arka uçlarınız. Ayrıca, arka uçlar için HTTP / 2 kullanılırken, birden çok yerine tek TCP bağlantısı kullanıldığından işler daha da kötüleşebilir.


9
Bu, nginx ile proxy kullanıyorsanız, arka uç sunucusu doğrudan erişilirse onu desteklese bile HTTP / 2 Server Push'u kullanamayacağınız anlamına gelir.
thomasrutter

3
HTTP / 2 bana yardımcı olacak şekilde yavaş bağlantılar üzerinden yerel olmayan siteler için nginx ters proxy kullanın. Nginx geliştiricilerinin bu kullanım örneğini düşünmemiş olmaları utanç verici :-(.
markshep

5

Ne yazık ki nginx, https://www.nginx.com/blog/http2-module-nginx/#QandA adresinden referans verilen bir http / 2 arka uç sunucusuna proxy'yi desteklemiyor

S: HTTP / 2'yi yukarı akış tarafında mı yoksa yalnızca istemci tarafında HTTP / 2'yi mi destekleyeceksiniz?

Y: Şu anda yalnızca istemci tarafında HTTP / 2'yi destekliyoruz. HTTP / 2'yi proxy_pass ile yapılandıramazsınız. [Editör - Bu yazının orijinal sürümünde, bu cümle “HTTP / 2'yi proxy_pass ile yapılandırabilirsiniz” şeklinde yanlış yazılmıştır. Bunun neden olabileceği karışıklıklar için özür dileriz.]

Ancak arka uç tarafında HTTP / 2'nin anlamı nedir? Çünkü karşılaştırmalı değerlendirmelerden de görebileceğiniz gibi, yukarı akış bağlantıları gibi düşük gecikmeli ağlar için HTTP / 2'de pek bir faydası yoktur.

Ayrıca, NGINX'te kalıcı modülünüz vardır ve kalıcı bir önbellek yapılandırabilirsiniz. HTTP / 2'nin ana performans avantajı ek el sıkışmalarını ortadan kaldırmaktır, ancak bunu zaten bir önbellekle yaparsanız, yukarı akış tarafında HTTP / 2'ye ihtiyacınız yoktur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.