我想使用 Apache 中的 VirtualHost 配置使用 mod_rewrite 重定向 URL,而不更改用户浏览器 URL。
即如果有人访问,grafana.test.lan:80
他们应该重定向到http://grafana.test.lan:3000
无需用户知情或 URL 更改。
这是我的配置文件:
LoadModule rewrite_module "/etc/httpd/modules/mod_rewrite.so"
<VirtualHost *:80>
ServerName grafana.test.lan
RewriteEngine on
RewriteRule ^(.*) http://grafana.test.lan:3000/$1
</VirtualHost>
知道我该怎么做吗?我正在 Centos 7 上配置它。
答案1
有两种方法可以做到:
1. 使用 mod_proxy
要启用代理模式,您必须在 bash 中发送以下命令:
a2enmod proxy
ad2enmod proxy_http
然后像这样更改你的网络配置
<VirtualHost *:80>
ServerName grafana.test.lan
ProxyPass / http://grafana.test.lan:3000/
ProxyPassReverse / http://grafana.test.lan:3000/
</VirtualHost>
官方链接:mod_proxy,mod_proxy_http
2. 使用 mod_rewrite
通过像这样更改你的网络配置
<VirtualHost *:80>
ServerName grafana.test.lan
RewriteEngine on
RewriteRule (.*) http://grafana.test.lan:3000/$1 [P]
</VirtualHost>
官方链接:mod_rewrite
答案2
您无法通过重写来实现这一点。您需要在站点用户和在端口 3000 上提供服务的服务器之间使用反向代理。详细信息留给作者作为练习。