0

受信リクエストごとにカスタム認証ヘルパーを使用して、Squid をリバース プロキシとして構成する必要があります。Squid へのすべてのリクエストは、基本認証を使用するものと見なされます。認証に失敗した接続はすべて終了する必要があります。私はイカの初心者です。以下は、私が使用した構成スクリプトです。このサンプルは「mindofaprogrammer.blog.com」にアクセスして、

acl all src all
acl manager proto cache_object

http_port 80 accel defaultsite=mindofaprogrammer.blog.com
cache_peer mindofaprogrammer.blog.com parent 80 0 no-query originserver name=myAccel

acl myblog dstdomain mindofaprogrammer.blog.com
http_access allow myblog
cache_peer_access myAccel allow myblog
cache_peer_access myAccel deny all


auth_param basic program C:/wamp/bin/php/php5.3.0/php.exe "c:/squid/libexec/authhelper.php"
auth_param basic children 2
auth_param basic realm eReader
auth_param basic credentialsttl 5 hours

acl AuthUsers proxy_auth REQUIRED
http_access allow AuthUsers

access_log c:/squid/var/logs/access.log squid
coredump_dir c:/squid/var/cache

PHP スクリプトでカスタム認証ヘルパーを作成しました。同じリストは次のとおりです。

<?php
$f = fopen("php://stdin", "r");
while ($line = fgets($f)) {
        $line = trim($line);
        $fields = explode(' ', $line);
        $username = rawurldecode($fields[0]); //1738
        $password = rawurldecode($fields[1]); //1738
        if ($username == 'hello' 
            and $password == 'world') {
                fwrite(STDOUT, "OK\n");
        } else if ($username == 'fo'
            and $password == 'bar') {
                fwrite(STDOUT, "OK\n");
        } else {
                // failed miserably
                fwrite(STDOUT, "ERR\n");
        }
}
?>

私が直面している問題は、これを構成した後でも、認証ではなくリバース プロキシ設定のみが機能することです。ここで何か間違ったことをしていますか?

4

1 に答える 1

0

最初に一番下に a を追加する必要があると思いますhttp_access deny all

次に、次のように、2 つの http_access を (" AND " 演算子として) 1 行に結合する必要があります。

http_access allow AuthUsers myblog

Squid は常に一致する最初の行を使用し、それ以上の処理を停止するhttp_access allow myblogことに注意してください。この行では、すべての要求を単純に受け入れて、認証部分への移動を停止します。

于 2011-03-23T14:37:54.300 に答える