![Apache mod_proxy 与 mod_rewrite](https://linux22.com/image/514374/Apache%20mod_proxy%20%E4%B8%8E%20mod_rewrite.png)
使用 mod_proxy 和 mod_rewrite 有什么区别?
我需要通过 tomcat 发送某些 url 模式,它在同一主机上运行,但在端口 8080 下。我知道这是 mod_proxy 的功能,但我想知道为什么我不能只使用 mod_rewrite,或者它们之间有什么区别?
可能与反向代理有关,并且还在管道中何时进行处理?
谢谢。
答案1
mod_rewrite使用 P 标志将请求置于 mod_proxy 中。使用 mod_rewrite 的优点是您可以更好地控制映射请求,就像 rewrite 让您重写 URL 一样。但代理完全相同。缺点是 mod_rewrite 语法更复杂。所以我的建议是使用 mod_proxy 样式的配置指令,除非您需要更复杂的东西。其他人可能会推荐 mod_rewrite 样式,因为这样您只需学习一种样式。
答案2
mod_rewrite
非常通用且功能强大:它不仅可以处理代理,还可以处理别名、重定向以及几乎任何类型的 URL 到其他 URL 或文件名的自定义映射。(好吧,我想如果你仔细寻找的话,你会发现有些东西mod_rewrite
是做不到的)但有几个潜在的理由不使用它:
- 您可能不想处理 的复杂性
mod_rewrite
。众所周知,正确配置非常棘手 - 配置实际上本身就是一种编程语言。 - Apache 需要时间来处理所有这些复杂的重写规则,如果您的服务器很忙,您可能不想处理这些规则。
mod_proxy
直接使用允许您调用更精简的代码,这可能会帮助您的服务器运行得更快。(老实说,我不确定这有多大的影响,但我认为影响不是很大)