Периодически приходится развертывать сервисы, которые должны быть доступны извне. Так как делается обычно это на Windows, то ничего придумывать не надо - reverse proxy для перенаправления внешних запросов на localhost:<port> можно сделать и там
Для этого необходимо скачать модуль URL Rewrite для IIS. Сделать это можно при помощи встроенной в IIS Web платформы или из интернета тут
Далее необходимо найти каталог своего приложения в папке interpub. Там будет файл web.config - у меня он выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8002/{R:0}" />
</rule>
</rules>
</rewrite>
<defaultDocument enabled="false" />
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
Тут ничего нет особенного - как раз только правило, которое нам надо:
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8002/{R:0}" />
</rule>
</rules>
</rewrite>
- Rewrite - использование модуля URL Rewrite
- Rules - блок со всеми правилами
- Rule - блок конкретного правила
- Match - правило (регулярка) которому должен соответствовать URL, чтобы быть перезаписанным по этому правилу
- Action - преобразование URL
При помощи подобного правила, но со своими настройками, можно обработать переход по домену вида example.com, приведя его к локальному сервису, доступному на localhost.