我托管了一个 Apache Web 服务器几年了。这只是工作中的一些附带项目,我没有域名。我们只使用公共 IP,效果很好。但现在我在服务器上安装了另一个基于 Web 的工具(Grafana),它运行良好http://123.456.78.9:3000
但是我们工作时的防火墙出现了问题,因为我们通过非标准端口访问它。
我想知道我是否可以配置 apache 来重定向所有来自http://123.456.78.9/grafana到本地主机:3000
这样,就可以通过默认端口 80 访问 Grafana Web 工具
我确实找到了很多有关虚拟主机的信息,但所有这些都使用域名,而我没有域名。
或者任何其他选择都会受到高度赞赏!
多谢!
答案1
我建议你阅读Grafana 文档。
虽然基于路径代理到不同后端的问题并不新鲜,但随着 SNI 和虚拟主机的引入,这个问题在某种程度上已经消失,因为 SNI 和虚拟主机消除了 IP 和域之间 1-1 关系的需要。
虽然您没有 DNS,但您仍可以通过将域名添加到您的 来使用域名/etc/hosts
。您的浏览器将发送 SNI,并且您的服务器将能够区分域名。
如果您更愿意采用 URL 方式,则需要配置您托管的每个服务以更改其根 URL,对于 Grafana 来说,如下所示:
[server]
domain = foo.bar
root_url = %(protocol)s://%(domain)s/grafana/
然后代理/grafana
到适当的后端。
如果您不更改 Grafana 中的根 URL,Grafan 后端将尝试/grafana
按预期进行查找/
,因此您将遇到大量 404。
答案2
您可以在所需的虚拟主机目录下创建一个空网页(index.php)并重定向到您想要的任何其他地址。只需将下面的行放入您的index.php中,然后修改目标地址即可。
以下是用于此目的的 PHP 代码。
< ?php header("位置:http://www.redirect.to.url.com/"); ?>