使用身份验证设置Apache代理

40

我需要设置带身份验证的代理来验证连接到互联网的应用程序的行为。

我正在尝试使用前向代理和身份验证设置Apache,虽然我已经接近使其工作,但我想知道是否有更好的方法,因为配置相当晦涩。

如何配置Apache以这种方式运行?

是否有其他已经配置好的良好选择?也许是一些虚拟机或其他软件工具,而不是Apache?

2个回答

70
记录一下,这是我如何配置Apache作为带基本认证的转发代理的方法:
打开http.conf文件,
取消下面的LoadModule指令的注释以启用代理功能。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

在http.conf文件中添加以下指令以启用身份验证。

ProxyRequests On
ProxyVia On

<Proxy *>
    Order deny,allow
    Allow from all
    AuthType Basic
    AuthName "Password Required"
    AuthUserFile password.file
    AuthGroupFile group.file
    Require group usergroup
</Proxy>

使用htpasswd.exe实用程序创建一个password.file文件。将其放置在Apache根目录中。

htpasswd.exe -c password.file username

使用文本编辑器在与password.file同级别的位置创建一个group.file文件,并填入以下内容。

usergroup: username

然后运行apachectl restart以应用配置更改。


“Apache根目录”在哪里?我正在代理到另一个位于其他地方的站点...所以没有主目录..你是指Apache可执行文件的文件夹吗? - Spock
2
如果您想让多个用户处于同一组中,您该如何操作group.file来实现?使用逗号分隔列表?还是用空格分隔?或者有其他方法? - istrasci
请注意,如果您正在使用Ubuntu操作系统,可以通过以下命令安装htpasswd二进制文件:sudo apt-get install apache2-utils - FriendFX
1
由mod_access_compat提供的Allow、Deny和Order指令已被弃用,并将在未来版本中消失。您应该避免使用它们。 - Antti A

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接