Хорошо, у меня IIS работает на порту 80, а apache в настоящее время работает на порту 19049. Теперь внешние порты открыты, чтобы разрешить трафик более 80, но я хочу иметь доступ к страницам apache извне без необходимости открывать этот порт или указывать порт в URL. Решение, которое я нашел, заключалось в настройке фильтра перезаписи ISAPI. http://iirf.codeplex.com/. Идея заключалась в том, что извне я мог бы перейти на www.mydomain.com/Apache, а фильтр isapi будет внутренне обслуживать запрос (при условии, что это / Apache) на страницу // localhost: 19049 и перенаправлять весь трафик туда и обратно (очевидно, со всеми другими суб-путями, отображенными правильно).
Проблема в том, что хотя я могу заставить работать базовые операции перезаписи, то есть перезаписывать запросы со страницы page1.htm на page2.htm или перенаправлять страницы со страницы page1.htm на www.google.com. Проблема заключается в том, что правило перезаписи не позволяет отправлять запрос на другой порт, а правило перенаправления фактически представляет собой всего лишь код 301 (поэтому очевидно, // localhost: 19049 не будет работать извне).
Есть ли у кого-нибудь реальное решение для этого, конечно, не должно быть так сложно маршрутизировать простой запрос.
Если вы переписываете вне хоста, например http: // x / -> http: // x: 999 /, вы спрашиваете клиент для перенаправления, что означает, что он будет отображаться на стороне клиента. Для этого вам понадобится прокси-сервер. Попробуйте Squid, Varnish, mod_proxy.
IIRF имеет ProxyPass директива, которая будет делать то, что вы хотите. Вам нужна IIRF версии 2.0.
Я не использую этот фильтр. Но я думаю, что это не то решение, которое вам нужно. Вам не нужно перенаправление или переписывание. Вам нужен обратный прокси. Есть решение для iis и apache. Я могу поручиться за апач mod_proxy.