![如何使用两个上下文配置 Apache 代理:“/”和“/dev”](https://linux22.com/image/682896/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%B8%A4%E4%B8%AA%E4%B8%8A%E4%B8%8B%E6%96%87%E9%85%8D%E7%BD%AE%20Apache%20%E4%BB%A3%E7%90%86%EF%BC%9A%E2%80%9C%2F%E2%80%9D%E5%92%8C%E2%80%9C%2Fdev%E2%80%9D.png)
我的服务器上运行着 2 个 AJP 服务,并且有一个 Apache 2.4 用于代理。
我想要映射这个:
# in-development environment
<Location "/dev">
ProxyPass ajp://127.0.0.1:3001/dev/
</Location>
# in production environment
<Location "/">
ProxyPass ajp://127.0.0.1:3000/
</Location>
但是当我访问http://我的服务器/dev它代理ajp://127.0.0.1:3000/
而不是ajp://127.0.0.1:3001/
。
答案1
这是因为重叠网络空间由指令处理<Location>
。如 Apache 文档中所述,
为了获得两个重叠的 URL,必须考虑某些部分或指令的评估顺序。例如
<Location>
:
<Location "/foo">
</Location>
<Location "/foo/bar">
</Location>