何時將 Kestrel 與反向 Proxy 搭配使用

Kestrel 可以單獨使用,也可以與反向 Proxy 伺服器 搭配使用。 反向 Proxy 伺服器會接收來自網路的 HTTP 要求,並將要求轉送到 Kestrel。 反向 Proxy 伺服器的範例包括:

Kestrel 用作 Edge (網際網路對應) 網頁伺服器:

Kestrel communicates directly with the Internet without a reverse proxy server

Kestrel 用於反向 Proxy 組態:

Kestrel communicates indirectly with the Internet through a reverse proxy server, such as IIS, Nginx, or Apache

不論是否具有反向 Proxy 伺服器,這兩種組態都是受支援的裝載組態。

當 Kestrel 用作不需要反向 Proxy 伺服器的 Edge Server 時,不支援在多個處理序之間共用相同的 IP 位址和連接埠。 不論要求的 Host 標頭為何,在 Kestrel 設定為接聽連接埠的情況下,Kestrel 都會處理該連接埠的所有流量。 可以共用連接埠的反向 Proxy 可以用唯一的 IP 和連接埠將要求轉送到 Kestrel。

即使不需要反向 Proxy 伺服器,使用反向 Proxy 伺服器也是不錯的選擇。

反向 Proxy:

  • 可以限制它所主控之應用程式的公開介面區。
  • 提供額外的組態和防禦層。
  • 能夠與現有基礎結構更好地整合。
  • 簡化負載平衡和安全通訊 (HTTPS) 組態。 只有反向 Proxy 伺服器須使用公用網域的 X.509 憑證。 該伺服器可以使用搭配本機受控憑證的一般 HTTP 或 HTTPS,與內部網路上的應用程式伺服器進行通訊。 內部 HTTPS 可提高安全性,但會增加大量額外負荷。

警告

裝載於反向 Proxy 組態需要主機篩選

其他資源

設定 ASP.NET Core 以處理 Proxy 伺服器和負載平衡器