다음 다이어그램을보십시오.
이것은 어떻게 작동합니까?
원격에서 http : // myhost.com:8080/*를 요청하면 루프백 인터페이스의 포트 8008에서 수신 대기하는 http 서버로 요청을 전달해야합니다. 이것은 쉬운 부분입니다.
원격 사용자가 http://myhost.com:8080/specialurl ...을 요청할 때
응용 프로그램 수준 게이트웨이로 작동하는 프로그램 (암호화 된 세션에 대한 연결 업그레이드 할 수 있어야합니다 포트를 변경하지 않고를 )
원격 브라우저와 암호화 된 세션을 설정 한 후 루프백 인터페이스의 포트 8000에서 수신 대기하는 C 프로그램으로 요청을 전달해야합니다.
내 질문은 :
- 프로덕션 환경에서 이와 같은 솔루션을 배포 한 적이 있습니까? 당신이 가지고 있다면...
- 응용 프로그램 게이트웨이로 사용하기 위해 어떤 제품을 사용 했습니까?
- 구성 예를 제공 할 수 있습니까?
엄격한 제한 사항 :
- 내가 방화벽을 통해 제어 할 수 없습니다 , 나는 내부 서버에 외부 트래픽을 얻을 수있는 유일한 포트 포트 번호는 무관하다 8080입니다, 문제는 방화벽 수준에 하나의 포트 개방이 있다는 것을 전달 수신 내부 서버로의 트래픽.
- 내부 서버는 Linux를 실행 중이어야합니다 (현재 Debian Lenny를 실행 중임)
- 원격 사용자는이 서버에 액세스하기 위해 현재 웹 브라우저와 인터넷 연결 만 있으면됩니다. 이것은 여기서 SSH를 통한 역방향 포트 전달이 옵션이 아님을 의미합니다.
- 프로덕션 환경에서 테스트되었으며 쉽게 배포 할 수있는 제품이 필요합니다. 내 자신의 응용 프로그램 게이트웨이를 개발하지 않으려 고합니다 (이 경우 서버 결함에서 묻는 대신 스택 오버플로 에서이 질문을하는 것 같습니다).
소프트 제한 :
- Apache를 응용 프로그램 게이트웨이로 사용하지 않으려 고합니다 (유일한 선택 일 경우 기꺼이 할 수는 있지만)
- 가능하면 응용 프로그램 게이트웨이는 성숙한 오픈 소스 소프트웨어 제품이어야합니다.
응용 프로그램 게이트웨이까지 성공한 제품
- 니 진스
- lighttpd
- 파운드
관련 RFC
- RFC2817 (... 기존 TCP 연결을 통해 TLS (Transport Layer Security)를 시작하기 위해 HTTP / 1.1의 업그레이드 메커니즘을 사용하는 방법에 대해 설명합니다. 보안되지 않은 보안 HTTP 트래픽이 동일한 잘 알려진 포트를 공유 할 수 있도록합니다 ...)
- RFC2818 (... ... 은 인터넷을 통해 TLS를 사용하여 HTTP 연결을 보호하는 방법을 설명합니다. 현재 관행은 다른 서버 포트를 사용하여 보안 트래픽을 안전하지 않은 트래픽과 구분하여 SSL을 통한 HTTP (TLS의 이전 버전)를 계층화하는 것입니다 ... )