Назад | Перейти на главную страницу

отключить дайджест аутентификации для обратного прокси

У меня есть дайджест-аутентификация на одном из моих доменов, но я хотел бы отключить ее для обратного прокси.

<VirtualHost *:80>
    ServerName example.org
    DocumentRoot /var/www/
    <Directory /var/www/>
            BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
            AuthType Digest
            AuthName "Internal"
            AuthDigestDomain http://example.org/
            AuthDigestProvider file
            AuthUserFile /etc/apache2/example.digest
            Require valid-user

            Options FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ExpiresActive On
    ExpiresDefault "access plus 7 days"

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /api/ http://api.otherdomain.com/ retry=0 nocanon
    ProxyPassReverse /api/ http://api.otherdomain.com/
    AllowEncodedSlashes On

    <Proxy *>
        Order allow,deny
        Satisfy Any
        Allow from all
    </Proxy>

Как видите, я безуспешно пытался использовать <Proxy> блок, чтобы удовлетворить любые запросы.

Я думаю, вы решите свою проблему довольно универсальным способом, поместив конфигурацию обратного прокси в <Location> тег и использовать внутреннюю структуру Apache объединяет директивы и устанавливает приоритет.

<Location> директивы применяются последними и должны отменять <Directory> директива.

<VirtualHost *:80>
    ServerName example.org
    DocumentRoot /var/www/
    <Directory /var/www/>
            BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
            AuthType Digest
            AuthName "Internal"
            AuthDigestDomain http://example.org/
            AuthDigestProvider file
            AuthUserFile /etc/apache2/example.digest
            Require valid-user

            Options FollowSymLinks MultiViews
            AllowOverride All

    </Directory>

    ExpiresActive On
    ExpiresDefault "access plus 7 days"

    <Location /api/>   
            Order allow,deny
            Allow from all

            ProxyPreserveHost On
            ProxyPass http://api.otherdomain.com/ retry=0 nocanon
            ProxyPassReverse http://api.otherdomain.com/
            AllowEncodedSlashes On
    </Location> 
</VirtalHost>

Из Apache 2.3 вы можете использовать контейнеры авторизации для выражения более сложной логики авторизации.