plesk: how to configure reverse proxy rules properly?
Are there any clues within ErrorLog?
Have you tried the same thing without mod_rewrite
(just mod_proxy
) like this:
<Location /tomcat>
ProxyPass http://example.com:8080/
ProxyPassReverse http://example.com:8080/
</Location>
Related videos on Youtube
rvdb
Updated on September 18, 2022Comments
-
rvdb over 1 year
[edit]: FWI, thanks to Vadym's comment below, I discovered that I had overlooked to enable
mod_proxy_http
on my Plesk server. Loading this module (alongsidemod_proxy
) fixed the original error.I'm trying to configure reverse proxy rules in
vhost.conf
. I have Apache-2.2.8 on Ubuntu-8.04, monitored by Plesk-10.4.4.What I'm trying to achieve is defining a reverse proxy rule that defers all traffic to -say-
http://example.com/tomcat/
to the Tomcat server running on port 8080. I havemod_rewrite
andmod_proxy
loaded in Apache. As far as I understandmod_proxy
docs, entering following rules in/var/www/vhosts/mydomain/conf/vhost.conf
should work:<Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests off RewriteRule ^/tomcat/(.*)$ http://example.com:8080/$1 [P]
Yet, I am getting a HTTP 500: internal server error when requesting above URL. (Note: I decided to use a rewrite rule in order to at least get some information logged.)
I have made
mod_rewrite
log extensively, and find following entries in the logs [note: due to a limitation of max. 2 URLs in posts of new users, I have modified all following URLs so that they only contain 1 slash after http:. In case you're suspecting typos: this was done on purpose):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]
This suggests that the rewrite and proxy part is processed ok; still the proxied request produces a 500 error. Yet:
- Addressing the testApp directly via
http://example.com:8080/testApp
does work. - The same setup does work on my local computer.
Is there something else (Plesk-related, perhaps?) I should configure?
- Addressing the testApp directly via
-
rvdb about 12 yearsThanks for your suggestion. I had tried normal proxy rules before (and have now tried to put them inside <Location> as you suggested). Same result: HTTP 500 error, without any trace at all in error.log (nor any other logfile I can find, which is quite maddening). Actually, that's why I resorted to a RewriteRule, to get at least some logging.
-
Vadym S. Khondar about 12 yearsAs just a random shot, do you have mod_proxy_http enabled in your server config?
-
rvdb about 12 yearsSpot on, nice shot! Sorry for having overlooked this trivial config issue. You already made the first day of my week, Vadym. Thanks a lot!