Apache Mod_Proxy多个虚拟主机代理适用于所有

时间:2018-12-11 16:13:42

标签: apache reverse-proxy mod-proxy

我有一个反向代理,我需要向其中添加一个应用程序代理上下文(路径),以在所有其他基于名称的虚拟主机上正常工作。例如,我们在conf.d下的单独.conf文件中有一些这样的虚拟主机:

app.conf:

<VirtualHost *:80>
  ServerName app.domain.tld
  ServerAlias app.site.domain.tld
  ProxyPreserveHost On
  ProxyRequests Off
  ProxyPass / http://app.backend.domain.internal:8080/
  ProxyPassReverse / http://app.backend.domain.internal:8080/
</VirtualHost>

app2.conf

<VirtualHost *:80>
  ServerName app2.domain.tld
  ServerAlias app2.site.domain.tld
  ProxyPreserveHost On
  ProxyRequests Off
  ProxyPass / http://app2.backend.domain.internal:8080/
  ProxyPassReverse / http://app2.backend.domain.internal:8080/
</VirtualHost>

我希望能够运行另一个配置,该配置将一对路径代理到所有其他配置,例如:

<VirtualHost *:80>
  ProxyPreserveHost on
  ProxyRequests Off
  <Location /myapi>
    ProxyPass http://myapi.backend.domain.internal:2005
    ProxyPassReverse http://myapi.backend.domain.internal:2005
  </Location>
  <Location /myapi2>
    ProxyPass http://myapi2.backend.domain.internal:2143
    ProxyPassReverse http://myapi2.backend.domain.internal:2143
  </Location>
</VirtualHost>

这样我们可以转到https://app.domain.tld/myapihttps://app2.domain.tld/myapi等,而无需在每个配置中添加这些位置节。 Apache和mod_proxy是否可能?如果是这样,我在寻找陷阱吗?到目前为止,我还没有运气获得将这些代理路径添加到彼此的虚拟主机/服务器名称的“空白”配置。如果我在每个配置中都包含位置,则效果很好,但这就是我要远离的位置。

0 个答案:

没有答案