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.