TeamCity Tomcat에 연결하도록 IIS 7 리버스 프록시 구성


12

우리는 가지고있는 IIS 7 구성 웹 서버를하고 만들려는 역방향 프록시 A에 대한 인 TeamCity를 사용하여 설치 Tomcat을 동일한 시스템에 있습니다.

IIS 서버 사이트가 https://somesite있으며 TeamCity가 (으)로 https://somesite/teamcity리디렉션되는 것으로 표시하고 싶습니다 http://localhost:portnumber.

내가 설치 한 IIS URL 재 작성 확장 과 응용 프로그램 요청 라우팅 역방향 프록시를 시도하고 설치하기를하지만 작업을 얻을 수 없습니다.

내가 찾은 가장 가까운 대답은 오래된 StackOverflow 질문입니다 : https : //.com/questions/331755/how-do-i-setup-teamcity-for-public-access-over-https
불행히도 아무런 작업이 없습니다 예.

꽤 많이 검색했지만 관련 예제를 찾지 못하는 것 같습니다.

도움을 주셔서 감사합니다!


또한이 방법을 사용하면 TeamCity의 일부 버튼이 'https'대신 'http'로 연결됩니다 ... 아마도 좋은 방법이 없을 수도 있습니다. 다시 쓸 수는 있지만 모든 데이터가 포함 된 첫 번째 호출이 일반 텍스트로 전송됨을 의미합니까? hmmm
— tofutim

답변:


12

TeamCity에 SSL을 구성 하고이 스레드의 답변을 사용하여 약 4 시간을 보냈으므로 서버 팜 옵션을 사용 하여이 작업을 수행 할 수있었습니다.

  • 포트 8080을 사용하여 127.0.0.1에 TeamCity 서버가 포함 된 TeamCity 서버 팜을 구성하고 응용 프로그램 라우팅 규칙이 해당 서버 팜 라우팅 규칙을 만들 수 있도록 허용했습니다.

  • 그런 다음 자체 서명 된 인증서로 구성한 TeamCitySecureProxy라는 웹 사이트를 만들었습니다. 바인딩에서 https / 443 만 구성했습니다 (http / 80 없음).

  • 내가 누락 된 부분 :- 그런 다음 IIS의 '서버 팜'에서 'TeamCity'노드를 클릭하고 '서버 팜'창에서 '프록시'를 선택한 다음 '응답 헤더의 리버스 다시 쓰기 호스트'를 선택하십시오.

이제 일반 http TeamCity 설치에 액세스하기위한 안전한 엔드 포인트가 있습니다.


1
"502-웹 서버가 게이트웨이 또는 프록시 서버로 작동하는 동안 잘못된 응답을 받았습니다." -여행 중에이 문제가 발생 했습니까? 그렇다면 어떻게 해결 했습니까?
— mcintyre321

이 솔루션은 저에게 효과적이었습니다. 역 다시 쓰기 호스트가 필요합니다. 그렇지 않으면 일부 버튼이 https 대신 http로 연결됩니다. Thanks Warren
— 두부

이 시나리오에서는 너겟 서버에 몇 가지 문제가 있습니다. :(
— tofutim

1

커넥터를 사용하여 그렇게 할 수도 있습니다.

Apache에서 직접 구할 수있는 기존 ISAPI 커넥터 (리디렉터)가 있거나 RiaForge에서 사용할 수있는 새로운 커넥터도 있습니다 (이것은 실행하기가 더 쉬워 보입니다).

http://tomcatiis.riaforge.org/


1
무엇에 대한 *.jar파일? IIS 7.5에 이것을 설치했지만 *.jsp내용을 제공 합니다 ... :( vaadin-6.6.2.jar배포 된 webapp의 루트에 파일이 있습니다. BonCode AJP 커넥터는 JSP 만 처리한다고 생각합니다. Boncode-Tomcat-JSP-Handler"Handler Mappings"옵션에서 IIS는 있지만 함께 할 수해야하는지 설정 아니에요 *.jar파일.
— Sk8erPeter

1

IIS GUI에서 ARR 프록시가 활성화되어 있는지 확인하십시오. 아마도 호스트 헤더를 유지하고 (applicationHost.config를 수동으로 편집하거나 appcmd를 사용하여이를 설정해야 할 수도 있음) 응답 헤더 옵션에서 호스트를 역방향으로 다시 작성해야 브라우저가 요청을하고 응답을보고 SSL 인증서 호스트.

  1. 443의 IIS 사이트 (그리고 아마도 80?)-모든 요청을 청취 (호스트 이름을 지정하지 않음)
  2. 들어오는 모든 경로를 확인하십시오 : URL 일치 (.*)
  3. TeamCity 경로를 찾고 나머지 경로를 유지하십시오. 조건 {URL} 일치^teamcity(/.*)?
  4. 보존 된 경로로 다시 작성 : 작업 다시 작성, http://localhost:port/{C:1}
  5. 쿼리 문자열 추가 확인
  6. 그리고 아마도 확인 된 추가 규칙 처리를 중지합니다.

그렇게해야한다고 생각합니다.

<rule name="Demo Rule" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{URL}" pattern="^teamcity(/.*)?" />
    </conditions>
    <action type="Rewrite" url="http://localhost:8080/{C:1}" />
</rule>

0

방금이 작업을 수행했으며 블로그를 게시했습니다.

모든 요구 사항을 설치 한 것으로 보이므로 이제 서버를 설정하기 만하면됩니다.

http://bronumski.blogspot.com/2010/10/host-teamcity-in-iis7.html


귀하의 게시물을 사용하여 기쁨이 없습니다. 이미 ServerFarm 옵션을 시도했습니다. SSL에서만 작동하도록해야하며 IIS는 80 만 443으로 제한되지 않습니다. 또한 root / teamcity 질문에 설명 된대로 사이트가 작동하도록해야하며 게시물이 그렇게 작동하도록하려면 세부 정보가 충분하지 않습니다. 링크 주셔서 감사합니다
— Cynicszm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.