代码之家  ›  专栏  ›  技术社区  ›  Sp. Emmy

Apache:代理前身份验证

  •  0
  • Sp. Emmy  · 技术社区  · 7 年前

    我有一个运行应用程序的虚拟机。它不支持密码保护。我像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>
    

    它重定向我,但没有密码保护。 发生了什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dusan Bajic    7 年前

    这个 <Directory> 指令用于封装一组指令,这些指令将仅应用于命名目录、该目录的子目录以及相应目录中的文件。代理服务器不是这些,所以您必须使用 <Location> 通过URL限制所附指令范围的指令:

    <Location />
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Location>