【问题标题】:Apache 2.4 reverse proxy setup cannot impose basic authenticationApache 2.4 反向代理设置不能强加基本身份验证
【发布时间】:2021-08-21 23:05:52
【问题描述】:

我已经设置了 apache2.4,当访问任何 apache 提供的网站时,基本身份验证效果很好。

现在我在端口 8000 上从其他服务运行了另外一个网络服务器,我想将 apache 设置为反向代理,希望它也可以在那里强加和处理基本身份验证......但改为询问用户和密码它只是为未受保护的网站提供服务。

我的设置是:

<VirtualHost *:8000>
    ProxyPreserveHost On
    ProxyPass / http://192.168.0.101:8000/
    ProxyPassReverse / http://192.168.0.101:8000/
<Location />
AuthType Basic
AuthName "Authorization"
AuthUserFile /etc/htpasswd/.htpasswd
require valid-user
</Location>
</VirtualHost>

我做错了什么?

更新: 通过标记答案找到的解决方案:

<VirtualHost *:8000>
  ProxyPreserveHost On

  <Location />
    ProxyPass http://192.168.0.101:8000/
    ProxyPassReverse http://192.168.0.101:8000/
    
    AuthType Basic
    AuthName "Authorization"
    AuthUserFile /etc/htpasswd/.htpasswd
    require valid-user
  </Location>
</VirtualHost>

还要确保将 apache 配置为侦听该端口,并且如果代理服务器是本地的,它不会在与侦听的端口相同的端口上运行

【问题讨论】:

    标签: apache apache2.4


    【解决方案1】:

    问题在于 Apache 没有“链接”Proxypass / http://example.com&lt;Location /&gt; - 即使它们都尝试使用 /。这意味着 Proxypass 将首先处理对“/”的请求,并且永远不会使用 Location 部分。

    您需要在Location 中移动代理配置,删除路径,例如:

    <VirtualHost *:8000>
      ProxyPreserveHost On
    
      <Location />
        ProxyPass http://192.168.0.101:8000/
        ProxyPassReverse http://192.168.0.101:8000/
        
        AuthType Basic
        AuthName "Authorization"
        AuthUserFile /etc/htpasswd/.htpasswd
        require valid-user
      </Location>
    </VirtualHost>
    

    【讨论】:

    • 嗨,谢谢您的解决方案,这是正确的答案,从 2 天尝试各种事情开始的错误配置使它看起来不起作用,但我发现了我的错误,现在它工作得很好!再次感谢!
    猜你喜欢
    • 2011-06-28
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2016-01-04
    相关资源
    最近更新 更多