【问题标题】:Apache rewrite rule based on a host基于主机的 Apache 重写规则
【发布时间】:2019-01-17 10:12:22
【问题描述】:

我有如下配置,基本上是grafana前面的反向代理。我将 /logout 请求转发到带有重定向 url 的身份验证服务器,并将 /login url 转发到 /login/generic_oauth。

只有当请求来自 grafana 本身时,我才想将 /logout 重定向到身份验证服务器,即只有当 grafana ui 发出请求时。

如果请求是由任何其他来源发出的,它应该转到反向代理并返回。基本上,当我从我的角度应用程序中注销用户时,我也会注销用户我的 grafana 应用程序。但是,由于我已将 /logout 链接到身份验证服务器重定向,因此在发出请求时出现 cors 错误。

  RewriteEngine on
  RewriteRule ^/logout - [C]

  I want to excute this rule only if the request is from http://grafana-ip:3001
  RewriteRule . "https://auth-server-ip:31443/auth/realms/MDC/protocol/openid-connect/logout?redirect_uri=http://auth-server-ip:8081/login" [NE,R=302,CO=grafana_sess:INVALID:;]

  RewriteRule ^/login$ /login/generic_oauth [L,R=302]

  ProxyPass / http://grafana-ip:3001/
  ProxyPassReverse / http://grafana-ip:3001/
  RequestHeader set X-Forwarded-Proto "https"

  Header always set Access-Control-Allow-Origin "*"
  Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
  Header always set Access-Control-Max-Age "1000"
  Header always set Access-Control-Allow-Headers "*"

当请求来自 grafana-ip 但不是来自任何其他来源时,我有什么方法可以执行规则

【问题讨论】:

    标签: mod-rewrite apache2 apache2.4


    【解决方案1】:

    由于您将 / 代理到后端,并且您的客户只在您的代理上请求 URL,而引用者引用您的代理,您真的没有理由使 /logout 处理有条件。这很好,因为出于同样的原因,你没有能力歧视任何事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2011-09-02
      • 2011-10-26
      相关资源
      最近更新 更多