【问题标题】:Enable external server access only through proxy?仅通过代理启用外部服务器访问?
【发布时间】:2012-08-15 17:37:41
【问题描述】:

设置:我在服务器上部署了一个 webapp。我还有另一台机器是代理。 问:如何保证webserver只能通过proxy访问?

例如:用户转到www.myproxy.com,并被重定向到www.mywebserver.com

但是他应该不能直接访问www.mywebserver.com而不先去代理。

这有可能吗?

【问题讨论】:

  • 你可以通过检查referrer来做到这一点,但这不是一个好的解决方案,因为有些浏览器没有设置referrer,很容易被欺骗。
  • 您能解释一下您的需求是什么吗?代理通常用于允许访问原本无法访问的网络资源。为什么需要阻止对服务器的直接访问?
  • 哦,抱歉,我刚发现我想要的是所谓的“反向代理”。因此,处理对另一个网络服务器的访问的代理。但是这个网络服务器与代理不在同一个网络中。它有一个公共 ip,但不应该是公共的,只能通过反向代理访问。

标签: java apache proxy


【解决方案1】:

您的问题不清楚,您的网络服务器是总是应该通过反向代理访问还是只重定向一次?

如果您的网络服务器始终位于代理服务器后面,您应该检查网络服务器上的“Via”和“x-forwarded-for”标头。 标头 via 应包含您的代理服务器 IP 地址。

【讨论】:

  • Webserver 和 proxy 是 2 台不同的物理机器,可能放置在不同的位置。所以,不在同一个网络内。我假设在这种情况下我不能说网络服务器在“代理后面”?无论如何,这正是我想要的:使外部“公共”服务器只能通过代理访问。所以,就好像它真的在代理后面一样。
  • 所以我的答案仍然适用,只需检查标题“Via”和“x-forwarded-for”
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 2017-04-21
  • 2010-10-19
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
相关资源
最近更新 更多