配置:
- 一台安装了 Docked 的虚拟机(10.10.10.68)
- 一个用于 myapp 的 Docker 容器,安装了 apache(10.10.10.68:8080)
- 安装了超集的第二个 docker 容器(10.10.10.68:8088)
问题:
我正在尝试创建一个重定向,将所有传入请求从 /superset 路由上的第一个容器重定向到安装了 superset 的第二个容器。
在 url 中,重定向似乎运行良好,但网页显示不正确,因为在超集容器上,无法访问资源、资产......
Apache 配置:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/myapp/current/public
ProxyPass /superset/ http://10.10.10.68:8088/
<Location /superset/>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap http://10.10.10.68:8088/ /superset/
ProxyHTMLURLMap / /superset/
</Location>
<Directory /var/www/myapp/current/public/>
Options +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
错误:
答案1
如果我理解正确的话,你希望所有请求http://container1/superset转发至http://container2:8088
正确的?
简单来说:
ProxyPass /superset http://10.10.10.68:8088/
ProxyPassReverse /superset http://10.10.10.68:8088/
代替:
ProxyPass /superset/ http://10.10.10.68:8088/
<Location /superset/>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap http://10.10.10.68:8088/ /superset/
ProxyHTMLURLMap / /superset/
</Location>
工作?
看:https://httpd.apache.org/docs/2.2/mod/mod_proxy.html-> “基本示例”