Apache:代理之前的身份验证
Apache: Authentification before proxing
我有一个带有应用程序 运行 的虚拟机。它不支持密码保护。我像 sub.domain.com:6000 一样连接到它(将端口 6000 重定向到 VM 的 80)
所以我喜欢使用 apache 作为具有身份验证的代理。
我的虚拟主机配置:
<VirtualHost *:*>
DocumentRoot /var/www/html/
<Directory "/var/www">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
ProxyPass "/" "http://127.0.0.1:5000/"
ProxyPassReverse "/" "http://127.0.0.1:5000/"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
它重定向了我,但没有密码保护。
怎么了?
<Directory>
指令用于包含一组仅适用于指定目录、该目录的子目录以及相应目录中的文件的指令。代理服务器是其中的 none,因此您必须使用 <Location>
指令,它通过 URL:
限制所附指令的范围
<Location />
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Location>
我有一个带有应用程序 运行 的虚拟机。它不支持密码保护。我像 sub.domain.com:6000 一样连接到它(将端口 6000 重定向到 VM 的 80)
所以我喜欢使用 apache 作为具有身份验证的代理。
我的虚拟主机配置:
<VirtualHost *:*>
DocumentRoot /var/www/html/
<Directory "/var/www">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
ProxyPass "/" "http://127.0.0.1:5000/"
ProxyPassReverse "/" "http://127.0.0.1:5000/"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
它重定向了我,但没有密码保护。 怎么了?
<Directory>
指令用于包含一组仅适用于指定目录、该目录的子目录以及相应目录中的文件的指令。代理服务器是其中的 none,因此您必须使用 <Location>
指令,它通过 URL:
<Location />
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Location>