Я настраиваю IIS (10.0) в качестве обратного прокси. Обратный прокси-сервер в основном работает, но он зависает, в частности, в одном файле:
Этот файл (ace.js
) никогда не покидает состояние ожидания. Это происходит каждый раз, когда я обновляю страницу в любом браузере.
Когда я перехожу на ту же страницу без , проходящей через мой прокси, этот файл загружается без проблем:
Что может быть причиной этого?
Полный URL-адрес этого файла: http://172.19.243.9/auth/resources/4.3.0.final/admin/keycloak/lib/ui-ace/min/ace.js.
Вот как я реализую свой обратный прокси в wwwroot/web.config
:
<rule name="RedirectToGoogle" stopProcessing="true">
<match url="^auth(\/?.*)" />
<action type="Rewrite" url="http://keycloak:8080/auth{R:1}" />
<serverVariables>
<set name="HTTP_HOST" value="{HTTP_HOST}" />
<set name="HTTP_X_FORWARDED_FOR" value="{REMOTE_ADDR}" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
<set name="HTTP_REFERER" value="" />
</serverVariables>
</rule>
Если это уместно, IIS работает в сети Docker, а проксируемая служба (keycloak
) находится в другом контейнере в той же сети.
Обновление: Я копался в IIS и журналах прокси-сервера. Журналы доступа к прокси-серверу (Keycloak) показывают, что этот файл был обработан по протоколу HTTP 200 без проблем. Однако IIS показывает эту информацию по запросу:
2018-09-13 13:01:12 172.19.242.115 GET /auth/resources/4.3.0.final/admin/keycloak/node_modules/angular/angular.min.js.map X-ARR-CACHE-HIT=0&X-ARR-LOG-ID=e5ac0907-7e2f-4791-8361-f6dcbe76fa0d&SERVER-STATUS=200 80 - 172.19.240.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/68.0.3440.106+Safari/537.36 - 200 0 121 20030
Соответствующая часть находится в самом конце - 200 0 121 20030
. Из некоторого Google, код 121
указывает, что «истекло время ожидания семафора». Однако мне еще предстоит найти решение этой проблемы.