apache-mod_rewrite + mod_proxy 在暂存区中工作,在生产区中不工作([P] 选项被忽略)

apache-mod_rewrite + mod_proxy 在暂存区中工作,在生产区中不工作([P] 选项被忽略)

我已经在我的 Apache 虚拟主机中设置了重定向,为几个子域名提供服务 - 分别称为 a.example.com 和 b.example.com - 为 ruby​​ on rails 应用程序提供服务。

在我的虚拟主机配置文件中我有以下规则:

rewriteEngine on
rewriteRule proxy/(.+)$ http://news.example.com/$1 [P]

我的想法是,我可以执行http://a.example.com/proxy/news/a并获取的内容http://news.example.com/news/a,但在同一个子域内,因此 ajax 不认为我的 ajax 请求是跨域的 -有关此问题的更多信息

问题是,虽然它在我的暂存环境中运行良好,但在生产中却不能!

两台服务器都是 Ubuntu 服务器 10.04。Apache 来自标准 ubuntu 存储库,使用apt-get install

我对整个 /etc/apache2/ 目录进行了比较,唯一的区别是服务器名称。

如果我将最后一个选项改为 [L],就会出现重定向,因此我认为 mod_rewrite 正在运行。它只是没有与 mod_proxy 通信。

通过查看日志(/var/log/apache2和 rails 日志),似乎生产中的重写规则被忽略了——日志与没有重写规则时完全相同。

我该如何调试?我是否可以强制 Apache 向我提供更多信息,说明为什么在访问时未执行此特定规则/proxy

答案1

我刚刚意识到这里不适合问这种问题。

我正在将这个问题移至 serverfault,并会在允许后立即将此答案标记为“正确”。如果您要回答这个问题,请在此处回答:

https://serverfault.com/questions/364471/apache-mod-rewrite-mod-proxy-working-in-staging-not-working-in-production

相关内容