กำหนดค่า IIS 7 Reverse Proxy เพื่อเชื่อมต่อกับ TeamCity Tomcat


12

เรามีเว็บเซิร์ฟเวอร์IIS 7 ที่กำหนดค่าและต้องการสร้างreverse proxyสำหรับการติดตั้งTeamCityโดยใช้Tomcatบนเครื่องเดียวกัน

เว็บไซต์ IIS เซิร์ฟเวอร์เป็นhttps://somesiteและฉันต้องการ TeamCity ที่จะปรากฏเป็นเปลี่ยนเส้นทางไปยังhttps://somesite/teamcityhttp://localhost:portnumber

ฉันได้ติดตั้งส่วนขยาย Rewrite IIS URLและApplication Request Routingเพื่อลองและติดตั้ง reverse proxy แต่ไม่สามารถทำงานได้

คำตอบที่ใกล้เคียงที่สุดที่ฉันพบคือคำถาม StackOverflow เก่า: /programming/331755/how-do-i-setup-teamcity-for-public-access-over-https
ซึ่งน่าเสียดายที่ไม่มีการทำงานใด ๆ ตัวอย่าง.

ฉันค้นหาค่อนข้างน้อย แต่ดูเหมือนจะไม่พบตัวอย่างที่เกี่ยวข้อง

ความช่วยเหลือใด ๆ ที่เป็นที่นิยม!


ฉันยังสังเกตเห็นว่าการใช้วิธีนี้มีปุ่มบางปุ่มใน TeamCity ซึ่งนำไปสู่ ​​'http' แทนที่จะเป็น 'https' ... อาจไม่มีวิธีที่ดีในการทำเช่นนี้ ในขณะที่สามารถเขียนใหม่ได้หมายความว่าสายแรกที่มีข้อมูลทั้งหมดถูกส่งเป็นข้อความธรรมดาหรือไม่? hmmm
tofutim

คำตอบ:


12

หลังจากใช้เวลาประมาณ 4 ชั่วโมงในการพยายามกำหนดค่า SSL สำหรับ TeamCity (และใช้คำตอบในหัวข้อนี้) ฉันจัดการเพื่อให้การทำงานนี้ใช้ตัวเลือกเซิร์ฟเวอร์ฟาร์ม

  • ฉันกำหนดค่าเซิร์ฟเวอร์ฟาร์ม TeamCity ซึ่งรวมเซิร์ฟเวอร์ TeamCity ของฉันใน 127.0.0.1 โดยใช้พอร์ต 8080 และอนุญาตให้กฎการกำหนดเส้นทางแอปพลิเคชันสร้างกฎการกำหนดเส้นทางเซิร์ฟเวอร์ฟาร์มที่สอดคล้องกัน

  • ฉันสร้างเว็บไซต์ชื่อ TeamCitySecureProxy ซึ่งฉันกำหนดค่าด้วยใบรับรองที่ลงชื่อด้วยตนเอง ในการรวมฉันกำหนดค่า https / 443 เท่านั้น (ไม่มี http / 80)

  • ส่วนที่ฉันหายไป: - จากนั้นฉันคลิกที่โหนด 'TeamCity' ภายใต้ 'Server Farms' ใน IIS เลือก 'Proxy' จากบานหน้าต่าง 'Server Farm' และทำเครื่องหมายที่ 'Reverse rewrite host in response header'

ตอนนี้ฉันมีจุดปลายที่ปลอดภัยสำหรับการเข้าถึงการติดตั้ง http TeamCity ธรรมดาของฉัน


1
ฉันได้รับ "502 - เว็บเซิร์ฟเวอร์ได้รับการตอบสนองที่ไม่ถูกต้องขณะทำหน้าที่เป็นเกตเวย์หรือพร็อกซีเซิร์ฟเวอร์" - คุณพบสิ่งนี้ในการเดินทางของคุณหรือไม่ถ้าใช่คุณจะแก้ไขได้อย่างไร
mcintyre321

วิธีนี้ใช้ได้ผลสำหรับฉัน จำเป็นต้องมีโฮสต์การเขียนใหม่แบบย้อนกลับมิฉะนั้นบางปุ่มจะนำไปสู่ ​​http แทนที่จะเป็น https ขอบคุณ Warren
tofutim

มีปัญหาบางอย่างกับเซิร์ฟเวอร์ nuget ในสถานการณ์นี้ :(
tofutim

1

คุณสามารถใช้ตัวเชื่อมต่อเพื่อทำเช่นนั้นได้

มีตัวเชื่อมต่อ ISAPI ตัวเก่า (ตัวเปลี่ยนเส้นทาง) ที่มีให้จาก Apache โดยตรงหรือมีตัวเชื่อมต่อใหม่จาก RiaForge (อันนี้ดูเหมือนจะใช้งานได้ง่ายกว่า)

http://tomcatiis.riaforge.org/


1
แล้ว*.jarไฟล์ล่ะ ฉันติดตั้งสิ่งนี้ใน IIS 7.5 ของฉัน แต่มันให้บริการ*.jspเนื้อหา ... :( ฉันมีvaadin-6.6.2.jarไฟล์ที่อยู่ในรูทของ webapp ที่ปรับใช้ของฉันฉันคิดว่า BonCode AJP Connector จัดการเพียง JSPs ฉันสามารถเห็นตัวเลือกBoncode-Tomcat-JSP-Handlerใน "Handler Mappings" ของ IIS แต่ยังไม่ได้ตั้งค่าสิ่งที่ควรทำกับ*.jarไฟล์
Sk8erPeter

1

ตรวจสอบให้แน่ใจว่าเปิดใช้งาน ARR proxying ใน IIS GUI คุณอาจต้องการสงวนส่วนหัวของโฮสต์ (อาจต้องแก้ไข applicationHost.config ด้วยมือหรือใช้ appcmd เพื่อตั้งค่านี้) และย้อนกลับเขียนโฮสต์ใหม่ในตัวเลือกส่วนหัวการตอบกลับที่เปิดใช้งานเช่นกันดังนั้นเบราว์เซอร์จึงร้องขอและเห็นการตอบสนอง โฮสต์ใบรับรอง SSL

  1. ไซต์ IIS บน 443 (และ 80 น่าจะใช่ไหม) - รับฟังคำขอทั้งหมด (อย่าระบุชื่อโฮสต์)
  2. ดูเส้นทางที่เข้ามาทั้งหมด: ตรงกับ URL (.*)
  3. มองหาเส้นทาง TeamCity รักษาเส้นทางที่เหลือ: เงื่อนไขให้{URL} ตรงกัน^teamcity(/.*)?
  4. เขียนใหม่ด้วยเส้นทางที่สงวนไว้: action rewrite, 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 เท่านั้นนอกจากนี้ยังต้องทำให้ไซต์ทำงานตามที่อธิบายไว้ในคำถามรูท / teamcity และมีรายละเอียดไม่เพียงพอในการโพสต์เพื่อให้ทำงานอย่างนั้น ขอบคุณสำหรับลิงค์แม้ว่า
Cynicszm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.