24

I'm looking to run Apache as a proxy for web development. I'm running Mac OS X 10.5.4, which already has Apache 2.2.8 installed and running.

I'd like to point my JavaScript files (which are running locally on my machine) to:

http://localhost/test.php

which would hit the local apache server, then have that apache instance forward to my real remote server:

http://www.mysite.com/test.php

I've looked at a few walkthroughs but they seem to be out of date. I'm wondering if there's a recent how-to on setting this up - the doc here:

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

gives a basic example, but I'm not sure where that text should be added - to http.conf? Do I simply add it there, then restart the server?

Thanks

Daniel Vassallo
  • 337,827
  • 72
  • 505
  • 443
mark
  • 1,697
  • 3
  • 14
  • 13

1 Answers1

41

The proxy setup that you describe is called a Reverse Proxy.

This is very easy to set up in Apache, by using the mod_proxy module.

The fundamental mod_proxy directive to set up a reverse proxy is the ProxyPass. You would typically add the following line to your local Apache configuration file (usually httpd.conf or apache2.conf):

ProxyPass     /remote/     http://www.mysite.com/

In this case, the browser would be requesting http://localhost/remote/test.php but your local Apache server would serve this by acting as a proxy to http://www.mysite.com/test.php.

You also need to make sure to have the following configuration lines uncommented in your Apache config file:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

Make sure to restart your local Apache service after you do any changes to the config file.

Daniel Vassallo
  • 337,827
  • 72
  • 505
  • 443
  • 2
    Don't you have to put ProxyPass within a tag? I can't get apache to start with it outside – blarg Feb 20 '14 at 16:14
  • 3
    The ProxyPass should be within a or a .htaccess file. – Shaun McDonald Mar 11 '14 at 14:05
  • you may want to define some [parameters](http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass) as well (scroll to the table) – zupa Sep 11 '14 at 13:12
  • 1
    @ShaunMcDonald `ProxyPass` is not allowed in `.htaccess`: `/srv/www/htdocs/shopwiz/web/.htaccess: ProxyPass not allowed here`. – Chloe Sep 16 '15 at 22:18