2016-11-21 4 views
0

http.sys은 들어오는 HTTP 요청의 처리 및 라우팅 속도를 크게 향상시키는 Windows의 커널 모드 드라이버입니다. Windows NT 4 시절에 추가 되었기 때문에 당시의 nascant IIS는 Apache에 비해 벤치 마크 성능이 향상되었습니다.자체 호스팅 ASP.NET 코어 - 사용 가능한 경우 http.sys를 사용합니까?

들어오는 HTTP 요청 (포트 80 및 443에서 다른 포트도 모니터링하도록 구성 할 수 있음)을 구성하고 해당 구성을 기반으로 다른 사용자 랜드 응용 프로그램으로 라우팅하는 구성 요소입니다 (자세한 내용은 MSDN 참조). : https://msdn.microsoft.com/en-us/library/windows/desktop/aa364510(v=vs.85).aspx

오늘 IIS를 사용하여 응용 프로그램을 호스팅한다면 http.sys을 활용하게됩니다.

그러나 자체 호스팅되는 ASP.NET 핵심 응용 프로그램이있는 경우 http.sys을 사용할지 여부를 나타내는 정보는 찾을 수 없습니다. 황조롱이는 사용하지 않거나 지원 HTTP.SYS가 (그것도 HTTP.SYS을하지 않는 리눅스에서 실행해야합니다) 동안

+0

[Rick Strahl] (https://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS)의이 페이지를 발견했습니다. ** 그는 말합니다 : ** 단일 서버에서 여러 응용 프로그램을 실행하여 포트 80과 포트 443을 모두 공유하려면 Kestrel을 직접 실행할 수 없습니다. Kestrel은 단일 IP 주소에서 다중 포트 80 바인딩을 허용하는 데 필요한 호스트 헤더 라우팅을 지원하지 않습니다. IIS (또는 http.sys 실제로) 없이는 Kestrel 만 사용하여 현재이 작업을 수행 할 수 없습니다 (그리고 이것은 계획되지 않았습니다). – Legends

+0

그래서 http.sys를 사용한다면 호스트 헤더 라우팅을 지원할 것입니다. 그게 내가 이해 한 것입니다. 아마도 틀 렸습니다 ... – Legends

답변

2

, 당신은 WebListener (HTTP.SYS 및 사용 예 here를 사용하여도 here를) 사용할 수 있습니다 이것을 달성하십시오. 그러나 분명한 이유로 Windows에서만 가능합니다.

Kestrel과 달리 WebListener는 프로덕션 준비 상태로 간주되므로 인터넷에 연결된 응용 프로그램을 호스팅하는 데 사용할 수 있습니다. 다른쪽에있는 Kestrel은 아직 존재하지 않기 때문에 공식적인 권고안은 Kestrel을 항상 역방향 프록시 (IIS, nginx 등) 뒤에 사용하는 것입니다.