我有一个运行应用程序的虚拟机。它不支持密码保护。我像sub.domain一样连接到它。com:6000(将端口6000重定向到VM的80)
所以我喜欢使用apache作为具有身份验证的代理。
我的VirtualHost配置:
<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> 指令用于封装一组指令,这些指令将仅应用于命名目录、该目录的子目录以及相应目录中的文件。代理服务器不是这些,所以您必须使用 <Location> 通过URL限制所附指令范围的指令:
<Directory>
<Location>
<Location /> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Location>