我正在将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
代码表明“信号灯超时时间已到”。不过,我还没有找到解决这个问题的方法。