Apache ProxyPass/ProxyPassReverse к IIS

Хорошо, вот быстрое и (очень) hacky способ сделать это. Рассказ, нет пути (что я знаю о) динамично сделать что Ваше выяснение со стандартными инструментами Apache. Дополнительные модули или код необходимы. Кто-то там, возможно, уже сделал модуль, который делает то, что Вы хотите. Я не пошел, смотря.

Установите и включите mod_perl в своей конфигурации Apache, затем поместите этот блок где угодно в Вашу конфигурацию после LoadModule для жемчуга. Это не должно быть ни в каком VirtualHost или Каталоге или чем-либо как этот.

<Perl>
 use Apache2::ServerUtil qw//;
 use Apache2::RequestRec qw//;
 use Apache2::RequestUtil qw//;
 use Apache2::Const qw/OK DECLINED/;

 my $s = Apache2::ServerUtil->server;

 $s->push_handlers(PerlHeaderParserHandler => sub { my($r) = @_;
  if ( $r->hostname eq 'www.example.com' &&
       $r->uri =~ m|^/(monitor\d+)/$| ) {
   my $monitorDirectory = $1;

   eval{$r->add_config([
    "AuthType basic",
    "AuthName 'secret $monitorDirectory'",
    "AuthUserFile /path/to/user/file",
    "require user $monitorDirectory"
   ])};
   if ( $@ ) { warn $@ }

   return OK;

  } else {
   return DECLINED;
  }
 });
</Perl>

В основном то, что это делает, смотрит на URL каждого запроса и если это - соответствия, вставляя некоторые правила конфигурации на лету перед этапом аутентификации и авторизации запроса. Для изменения его изменитесь www.example.com бит, соответствие regex ^/(monitor\d+)/$, и список директив для вставки.

Это оставит Вас с пользовательским файлом для поддержания, где имя пользователя является именем каталога от URL. Если Вы хотите многочисленных пользователей на каталог, необходимо будет использовать группы и поддержать тот файл также. Для этого, изменения require user $monitorDirectory кому: require group $monitorDirectory и добавьте AuthGroupFile /path/to/group/file.

1
задан 12 February 2015 в 06:21
1 ответ

Было бы лучше, если Вы могли бы отправить свою конфигурацию прокси так, чтобы у нас была точная идея того, что могло продолжаться.

Я предполагаю однако, что, если это действительно - проблема cookie, Вы могли бы решить его при помощи ProxyPassReverseCookieDomain и/или ProxyPassReverseCookiePath директивы для перезаписи cookie правильно. Обратитесь к документации.

1
ответ дан 4 December 2019 в 01:47

Теги

Похожие вопросы