plesk:如何正确配置反向代理规则?

plesk:如何正确配置反向代理规则?

[编辑]:FWI,感谢 Vadym 在下面的评论,我发现我忘记mod_proxy_http在 Plesk 服务器上启用了。加载此模块(与 一起mod_proxy)修复了原始错误。

我正在尝试配置反向代理规则vhost.conf。我在 Ubuntu-8.04 上有 Apache-2.2.8,由 Plesk-10.4.4 监控。

我想要实现的是定义一个反向代理规则,将所有流量延迟到 - 比如 -http://example.com/tomcat/在端口 8080 上运行的 Tomcat 服务器。我已经mod_rewritemod_proxy其加载到 Apache 中。据我了解mod_proxy,输入以下规则/var/www/vhosts/mydomain/conf/vhost.conf应该有效:

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

ProxyRequests off
RewriteRule ^/tomcat/(.*)$ http://example.com:8080/$1 [P]

但是,当我请求上述 URL 时,我收到 HTTP 500:内部服务器错误。(注意:我决定使用重写规则,以便至少记录一些信息。)

我做了大量mod_rewrite日志记录,并在日志中发现以下条目 [注意:由于新用户帖子中最多只能有 2 个 URL,我已修改以下所有 URL,使它们在 http: 后仅包含 1 个斜线。如果您怀疑有拼写错误:这是故意的):

192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) init rewrite engine with requested uri /tomcat/testApp/
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (3) applying pattern '^/tomcat/(.*)$' to uri '/tomcat/testApp/'
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) rewrite '/tomcat/testApp/' -> 'http:/example.com:8080/testApp/'
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (2) forcing proxy-throughput with http:/example.com:8080/testApp/
192.0.2.23 - - [19/Mar/2012:16:42:59 +0100] [example.com/sid#b06ab8][rid#1024af8/initial] (1) go-ahead with proxy request proxy:http:/example.com:8080/testApp/ [OK]

这表明重写和代理部分处理正常;但代理请求仍然会产生 500 错误。然而:

  • 直接通过以下地址访问 testApphttp://example.com:8080/testApp 工作。
  • 相同的设置在我的本地计算机上工作。

还有其他东西(可能与 Plesk 相关?)我应该配置吗?

答案1

ErrorLog里有什么线索吗?

mod_rewrite您是否尝试过不这样做(只是mod_proxy)这样的事情:

  <Location /tomcat>
    ProxyPass http://example.com:8080/
    ProxyPassReverse http://example.com:8080/
  </Location>

相关内容