Cấu hình Proxy ngược IIS 7 để kết nối với TeamCity Tomcat


12

Chúng tôi có một máy chủ web IIS 7 được cấu hình và muốn tạo proxy ngược cho cài đặt TeamCity bằng Tomcat trên cùng một máy.

Trang web máy chủ IIS là https://somesitevà tôi muốn TeamCity xuất hiện dưới dạng https://somesite/teamcitychuyển hướng đến http://localhost:portnumber.

Tôi đã cài đặt tiện ích mở rộng Viết lại URL IISĐịnh tuyến yêu cầu ứng dụng để thử và thiết lập proxy ngược nhưng không thể làm cho nó hoạt động.

Câu trả lời gần nhất tôi tìm thấy là một câu hỏi StackOverflow cũ: /programming/331755/how-do-i-setup-teamcity-for-public-access-over-https
mà không may không hoạt động thí dụ.

Tôi đã tìm kiếm khá nhiều nhưng dường như không thể tìm thấy một ví dụ có liên quan.

Bất kỳ trợ giúp được đánh giá cao!


Tôi cũng nhận thấy rằng việc sử dụng phương pháp này, một số nút trong TeamCity dẫn đến 'http' thay vì 'https' ... có thể không có cách nào tốt để thực hiện việc này. Trong khi nó có thể được viết lại, điều đó có nghĩa là cuộc gọi đầu tiên với tất cả dữ liệu được gửi bằng văn bản thuần túy? hmmm
tofutim

Câu trả lời:


12

Chỉ mất khoảng 4 giờ để cố gắng định cấu hình SSL cho TeamCity (và sử dụng các câu trả lời trong chuỗi này), tôi đã quản lý để làm việc này bằng tùy chọn cụm máy chủ.

  • Tôi đã định cấu hình cụm máy chủ TeamCity bao gồm máy chủ TeamCity của tôi trên 127.0.0.1 bằng cổng 8080 và cho phép Quy tắc định tuyến ứng dụng tạo quy tắc định tuyến cụm máy chủ tương ứng.

  • Sau đó, tôi đã tạo một trang web có tên TeamCitySecureProxy mà tôi đã cấu hình với chứng chỉ tự ký. Trên các ràng buộc tôi chỉ cấu hình https / 443 (không có http / 80).

  • Phần tôi bị thiếu: - Sau đó, tôi đã nhấp vào nút 'TeamCity' trong 'Trang trại máy chủ' trong IIS, chọn 'Proxy' từ ngăn 'Máy chủ trang trại' và đánh dấu vào 'Máy chủ viết lại ngược trong tiêu đề phản hồi'.

Bây giờ tôi có một điểm cuối an toàn để truy cập cài đặt http TeamCity đơn giản của mình.


1
Tôi nhận được "502 - Máy chủ web nhận được phản hồi không hợp lệ trong khi hoạt động như một cổng hoặc máy chủ proxy." - bạn đã gặp điều này trên hành trình của mình chưa, và nếu vậy, bạn đã sửa nó như thế nào?
mcintyre321

Giải pháp này đã làm việc cho tôi. Máy chủ viết lại ngược là cần thiết nếu không một số nút dẫn đến http thay vì https. Cảm ơn Warren
tofutim

Có một số vấn đề với máy chủ
nuget

1

Bạn cũng có thể sử dụng một kết nối để làm như vậy.

Có trình kết nối ISAPI cũ (bộ chuyển hướng) có sẵn trực tiếp từ Apache hoặc cũng có một trình kết nối mới có sẵn từ RiaForge (cái này có vẻ dễ chạy hơn).

http://tomcatiis.riaforge.org/


1
Còn *.jarcác tập tin thì sao? Tôi đã cài đặt này trên IIS của tôi 7.5, nhưng nó chỉ phục vụ *.jspnội dung ... :( Tôi có một vaadin-6.6.2.jartập tin trong thư mục gốc của ứng dụng web triển khai của tôi. Tôi nghĩ rằng xử lý BonCode AJP nối chỉ JSP, tôi có thể thấy một Boncode-Tomcat-JSP-Handlertrong "Handler Mappings" tùy chọn IIS, nhưng nó không được đặt những gì nên được thực hiện với *.jarcác tệp.
Sk8erPeter

1

Đảm bảo proxy ARR được bật trong GUI GUI. Bạn có thể muốn bảo toàn tiêu đề máy chủ (có thể cần chỉnh sửa applicationhost.config bằng tay hoặc sử dụng appcmd để đặt tiêu đề này) và đảo ngược máy chủ ghi lại trong các tùy chọn tiêu đề phản hồi cũng được bật, do đó trình duyệt đưa ra yêu cầu và xem phản hồi phù hợp với Máy chủ chứng nhận SSL.

  1. Trang web IIS trên 443 (và 80 có lẽ?) - lắng nghe tất cả các yêu cầu (không chỉ định tên máy chủ)
  2. nhìn vào tất cả các đường dẫn đến: khớp URL (.*)
  3. tìm đường dẫn TeamCity, bảo toàn phần còn lại của đường dẫn: điều kiện {URL} khớp^teamcity(/.*)?
  4. viết lại với đường dẫn được bảo tồn: viết lại hành động, http://localhost:port/{C:1}
  5. chắp thêm chuỗi truy vấn
  6. và ngừng xử lý các quy tắc có thể được kiểm tra

Tôi nghĩ rằng nên làm điều đó.

<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

Tôi vừa mới làm điều này bản thân mình và vừa đăng một blog về nó.

Dường như bạn đã cài đặt tất cả các yêu cầu, bây giờ bạn chỉ cần thiết lập máy chủ:

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


Không có niềm vui bằng cách sử dụng bài viết của bạn. Tôi đã thử tùy chọn ServerFarm. Tôi chỉ cần làm cho nó hoạt động trên SSL, IIS không bị ràng buộc với 80 chỉ 443. Ngoài ra, cần phải làm cho trang web hoạt động như được mô tả trong root / teamcity câu hỏi và không đủ chi tiết trên bài đăng để làm cho nó hoạt động theo cách đó. Cảm ơn về liên kết mặc dù
Cynicszm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.