Похоже, что ваш обратный прокси-сервер не работает - Jenkins IIS - PullRequest
0 голосов
/ 14 января 2020

Кажется, я не могу правильно настроить обратный прокси-сервер для моего Jenkins с IIS.

Все работает правильно, но я не могу заставить это сообщение исчезнуть! Запуск «administratorMonitor / hudson.diagnosis.ReverseProxySetupMonitor / testForReverseProxySetup» не возвращает 200 .. но на самом деле 404.

Я также использую плагин Blue Ocean, я заметил, что при запуске конвейеров при доступе к Jenkins через мой обратный прокси, я не вижу обновления в реальном времени !! Я копался в этом и обнаружил, что обычно это из-за плохой настройки Revery Proxy. Если я получаю доступ к jenkins через localhost, я вижу живые обновления Blue Ocean Pipeline, поэтому что-то должно быть неправильно настроено!

Что я получил :

  1. Windows Сервер 2019 Datacenter
  2. IIS 10

У меня настроен HTTPS, поэтому моя цель: Go на jenkins.example.com, он будет перенаправлен на https://jenkins.example.com, который, в свою очередь, является загрузчиком обратного прокси-сервера jenkins.

My web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules useOriginalURLEncoding="false">
                <!-- Enforces redirection of all HTTP traffic to HTTPS -->
                <rule name="Enforce HTTPS" stopProcessing="true">
                    <match url="(.*)" />
                        <conditions>
                            <add input="{HTTPS}" pattern="off" />
                        </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
                </rule>
                <rule name="ReverseProxyToLocalJenkinsRule" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="on" />
                    </conditions>
                    <action type="Rewrite" url="http://jenkins.example.com:7070/{R:1}" />
                    <serverVariables>
                        <set name="X-Forwarded-Proto" value="https" />
                        <set name="X-Forwarded-Port" value="443" />
                        <set name="X-Forwarded-Host" value="{HTTP_HOST}" />
                    </serverVariables>
                </rule>
            </rules>
        </rewrite>
        <security>
            <requestFiltering allowDoubleEscaping="true" />
        </security>
    </system.webServer>
    <system.web>
        <httpRuntime maxUrlLength="4096" />
    </system.web>
</configuration>

Это лучший рабочий обратный прокси-сервер I может получить, следующие уроки jenkins обычно приводят меня к проблемам входа в систему (URL удваивается, например: example.com/https://example.com)

Ps, это последний windows образ сервера там и есть чистая базовая сборка.

Я пробежал много учебников, но ничего не решило эту проблему, любые советы очень ценятся.

Я также хочу отметить, что у меня есть один сервер с установленным Jenkins и IIS Jenkins доступен на локальном сервере 7070 на сервере. Я также отредактировал мой файл hosts на сервере:

127.0.0.1 jenkins.example.com

Где jenkins.example.com - это действительный поддомен / домен, указывающий на publi c IP моего сервера.

Поэтому, когда я пингую: jenkins.domain.com на сервере локально ... он возвращает 127.0.0.1. Если я пинг за пределами этого сервера, т.е. на моем P C я получаю c IP.

Jenkins Test Failing

РЕДАКТИРОВАТЬ:

У меня есть запрос на маршрутизацию приложения Установлен и ниже мой конфиг: ARR Setup

...