문제

우리 회사는 .NET FX 3.5 및 C#을 사용하여 프록시 서버를 작성하는 것을 실험하고 있습니다. 우리로부터 연구 나는 왜 httplistener가 프록시 서버의 좋은 후보가 아니라는 것을 읽었지만 왜 그런지 잘 모르겠다.

우리는 현재와 함께 일하고 있습니다 Mentalis 프록시 예제 소스 코드 여기에는 무엇보다도 우리 자신의 로깅 및 성능 카운터를 구현하는 것이 포함됩니다. httplistener를 사용하면 http.sys가 래핑하여 우리가 필요한 성능 통계를 제공합니다.

그렇다면 왜 httplistener가 HTTP 프록시 작업의 나쁜 후보입니까?

(예, ICAP 서버를 작성하거나 구성하여 Squid 3.1을 고려하고 있습니다.)

도움이 되었습니까?

해결책

httplistener는 .NET에 있으며 주요 빌딩 블록을 제공합니다. 단순한 HTTP 서버. 간단한 경우 높은 작동률을 지원하지 않는 경우.

일반적으로 HTTP 프록시는 많은 동시 연결을 지원하고 프록시의 기능 (프록시 유형에 따라 다름)을 제공하기 위해 오버 헤드가 매우 낮아야합니다.

프록시는 자세히 설명되어 있습니다 RFC 2616 §8.1.3) 그리고 즉시 (httplistener를 올바르게 이해하는 경우) 불가능한 항목을 즉시 제공합니다.

프록시 서버는 클라이언트 및 원리 서버 (또는 기타 프록시 서버)와 별도로 지속적으로 연결해야합니다. 각 영구 연결은 하나의 전송 링크에만 적용됩니다.

다른 팁

Nginx의 Windows 포트가 며칠 전에 출시되었다고 생각할 수도 있습니다. 오징어와 바니시 경험이있는 많은 사이트는 Nginx로 변환 한 후 매우 기뻐합니다. 그렇다면 요즘 MS가 ISA 서버라고 부르는 것이 항상 있습니다.

지금 Mentalis 코드를 보러 갔다 : D

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top