Apache:使用 proxypass 重定向后资源未加载

Apache:使用 proxypass 重定向后资源未加载

配置:

  • 一台安装了 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-> “基本示例”

相关内容