Soru Neden bir WSGI sunucusunun önüne bir ters proxy koymalı?


WSGI uygulamasının dağıtımı için tipik bir yapılandırma, bir ters proxy gibi davranan genel amaçlı bir web sunucusunun (nginx gibi) arkasında bir WSGI sunucusu (örneğin, uWSGI veya Gunicorn) içerir. Ters bir proxy'ye sahip olduğumu bildiğim en önemli sebeplerden biri, statik dosyaları verimli bir şekilde sunmaktır. Başka sebep var mı?

Uygulamamın yalnızca Python kodunu içerdiğini ve statik içeriği önemsemediğini varsayalım. Bu durumda neden ters vekil istemeliyim? uWSGI ve Gunicorn'ların her biri, istemcilerle arabirim oluşturabilen bir asenkron HTTP sunucusu sağlıyor.

WSGI HTTP sunucusunu doğrudan dış dünyaya göstermekten daha iyi olacağım herhangi bir pratik durum var mı?


5
2017-09-04 07:19


Menşei




Cevaplar:


  • tam gelişmiş bir ters proxy gibi daha fazla yapılandırma seçeneğiniz var

    • yeniden yazmak
    • yerleri
    • sunucu
    • https
    • başlık-temizleme
    • sona eriyor
    • gzip
    • ....
  • yük dengeleme yapabilirsin

  • proxy_cache kullanabilirsiniz
  • Uygulama sunucularınız kapalıyken bile özel hata sayfaları uygulayabilirsiniz
  • WAF uygulamanıza sahip olabilirsiniz
  • (bazen) güvenlik açıklarına karşı hotpatch yapabilirsiniz

BONUSPOINT

  • Aşağıdaki kurulum (nginx) ile müşterileri 100.000 istek / saniye (ortalama donanım) üzerinde etkileyebilirsiniz:

.

location /perftest/ {
    return 200;
}

5
2017-09-04 08:32





Ters proxy kullanmanın ek avantajları.

MAY'in size fayda sağlayabileceği diğer faydalar elde edilebilir.

  • İnternetten bilgi gizleyebilirsiniz (web sunucusu sürümü, uygulama sunucusu, veritabanı sunucusu, api)
  • Tek bir alanın arkasında birden fazla web sunucusu teknolojisini uygulayabilirsiniz (Linux tomcat + Windows IIS vb.)
  • Https / SSL bağlantılarını sonlandırabilir ve bunları dahili http hizmetlerine eşleyebilirsiniz.
  • Tüm kayıtları merkezileştirebilirsiniz.
  • Tüm DDOS önleme merkezileştirebilirsiniz
  • Kimlik yönetimini web sunucusu katmanından uygulayabilirsiniz.

Güvenlik Avantajları

  • İç sunucu yukarıdaki gibi gizleniyor.
  • Dahili uygulama sunucusu sunucularınızı ve veritabanı sunucularınızı, ana bilgisayardaki yazılım güvenlik duvarlarına (DMZ olarak adlandırılır) başvurmadan yönlendirebilirsiniz.
  • Bilinen sorunlardan (web uygulaması güvenlik duvarı) veya bilinen saldırı düzenlerinden derhal tamir edilemeyen bir sunucuyu koruyabilirsiniz.

2
2018-03-06 20:28