首页 > 解决方案 > Riak KV 在做反向代理时返回 403 Forbidden

问题描述

当我试图从我的前端访问它时(我正在从 Angular http 客户端发出请求),我从位于反向代理后面的 RiakKV 收到 403 Forbidden。奇怪的是,当我尝试从 Postman 运行相同的 GET 请求(或者甚至从 Web 浏览器输入 Riak API 的直接 url)时,没有问题 - 我正在获取数据。

我分析了 Riak 的日志,并发现它与引用者标题“由于引用者无效导致请求被拒绝”有关。正如 Riak 的文档(http://docs.basho.com/riak/kv/2.2.3/configuring/reference/)中所述:

一些反向代理无法删除 Referer 标头,并且无法直接从 Riak 提供数据。关闭此设置 [secure_referer_check] 将禁用此安全检查。

我禁用了这个选项,它工作正常。

但我想知道是否可以在不关闭此选项(据我了解,它增加了安全性)、修改代理设置的情况下实现这一点。

我的代理在 Apache HTTP Server 上配置,如下所示:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        <LocationMatch "/riak">
            ProxyPass "http://IP:8098/"
            ProxyPassReverse "http://IP:8098/"
            Header add "Access-Control-Allow-Origin" "https://my.domain"
        </LocationMatch>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我正在尝试各种选项

Header add referer ""
RequestHeader set referer ""

取消设置引用,但它没有工作。

您知道如何实现这一目标吗?

标签: proxyreverse-proxyhttp-status-code-403riak

解决方案


推荐阅读