Я настраиваю Jenkins с Tomcat на AWS за ELB. Я хочу, чтобы ELB разорвал SSL-соединения и установил не-SSL-соединения с серверной частью jenkins на 8080.
Моя связь выглядит так -
Входящий 443 в ELB -> входящий без SSL для jenkins на EC2 на 8080
Исходящий 443 на ELB <- трафик без SSL от Дженкинса, исходящий на ELB
У меня есть первая работающая, где я могу получить доступ к Дженкинсу через https: //. Однако Дженкинс говорит: «Похоже, что ваш обратный прокси-сервер не работает» и имеет ссылку на https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+says+my+reverse+proxy+setup+is+broken
Я не слишком знаком с конфигурацией tomcat и думаю, что для этого нужна конфигурация прокси. Я попытался добавить proxyPort = "443" в свой server.xml для строки коннектора port = "8080" .., и это не сработало.
Как вы гарантируете, что ELB действует как SSL для прокси без SSL, а ответы jenkins http от tomcat отправляются как https: // ELB
После дальнейших попыток решить эту проблему я нашел способ сделать то, что хотел. Вместо того, чтобы развертывать войну из jenkins вручную, я установил jenkins из их репозитория RHEL, и, похоже, все работает хорошо.
Моя установка:
Интернет -> (443) ELB (443) ---> (8080) EC2 Jenkins
ELB не имеет включенного закрепления и разрывает соединения SSL. Подключение к бэкэнду Jenkins осуществляется через HTTP.
Надеюсь, это поможет любому, кто хочет запускать Jenkins непосредственно за ELB без веб-сервера между прокси.
Если вы развертываете Jenkins через файл WAR, вы можете настроить ELB для пересылки HTTPS-соединений через порт 8080.
В прослушивателях ELB настройте новый прослушиватель с протоколом HTTPS и измените порт с 443 на 8080. Выберите протокол экземпляра как HTTP и порт как 8080. Теперь, когда вы перейдете к https://jenkins.server.com:8080, он должен служить вам Дженкинсом, бегущим из WAR.