![Apache 2.4、反向代理、正向凭证(基本身份验证)](https://linux22.com/image/778811/Apache%202.4%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E6%AD%A3%E5%90%91%E5%87%AD%E8%AF%81%EF%BC%88%E5%9F%BA%E6%9C%AC%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%EF%BC%89.png)
我想将基本身份验证凭据传递给反向代理服务器。
现在其工作方式的示例:用户访问网站,Apache 配置为要求基本身份验证,用户输入用户名和密码,如果正确,则用户连接到反向代理服务器。
我想要设置的示例:情况 1:用户访问网站,Apache 要求进行身份验证,用户输入正确的凭据,用户连接到反向代理,身份验证标头(用户名和密码)传递到反向代理服务器
情况 2:用户访问网站,Apace 要求进行身份验证,用户输入错误的凭据,Apache 阻止连接。
问候,tomari
答案1
在我的测试设置中,这是自动发生的。我没有配置任何特殊的东西
我的Apache配置:
<VirtualHost *:80>
ProxyPass / http://backend/
ProxyPassReverse / http://backend/
<Location />
AuthType Basic
AuthName "Restricted Files"
AuthUserFile "/usr/local/apache2/conf/htpasswd"
Require valid-user
</Location>
</Virtualhost>
通过反向代理调用 test.php:
array(42) {
["HTTP_HOST"]=>
string(7) "backend"
[...]
["PHP_SELF"]=>
string(9) "/test.php"
["PHP_AUTH_USER"]=>
string(6) "gerald"
["PHP_AUTH_PW"]=>
string(8) "testtest"
}
当我输入无效的凭据时,请求被拒绝并且无法到达后端。
如果它不适合您,您需要添加有关您的设置的更多详细信息。