Isso me levou um tempo para descobrir. Existem algumas esquisitices com o funcionamento do IIS com suas variáveis de servidor, veja abaixo:
-
Você deve definir a variável na GUI do InetMgr. Descobri que, ao tentar especificar apenas o uso do web.config, o servidor retornará 500 erros internos do servidor até que seja adicionado. (Você já fez isso, então nada para mudar aqui.)
-
Um valor dinâmico para a solicitação ou estático para cada solicitação deve ser atribuído. Isso é pré-formado no web.config:
Código com destaque de marcação e sintaxe
Se você deseja copiar e colar:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http:/example.com/{R:1}" />
<serverVariables>
<set name="ORIGINAL_HOST20" value="{HTTP_HOST}" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
<set name="HTTP_X_FORWARDED_PORT" value="443" />
<set name="HTTP_X_FORWARDED_HOST" value="example.com" />
</serverVariables>
</rule>
</rules>
</rewrite>
<httpErrors errorMode="DetailedLocalOnly" />
<directoryBrowse enabled="false" />
</system.webServer>
Espero que isso ajude!