2010-01-04 34 views
20

我正在运行Apache作为Web开发的代理。我运行的是Mac OS X 10.5.4,它已经安装并运行了Apache 2.2.8。在apache中设置基本的Web代理

我想我的JavaScript文件(这是我的机器上本地运行)指出:

http://localhost/test.php 

这将打击本地的Apache服务器,然后有一个Apache实例着我真正的远程服务器:

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

我已经看了几演练,但他们似乎是过时的。我不知道是否有一个最近的how-to设置此功能的 - 这里的DOC:

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

给出了一个简单的例子,但我不知道在哪里的文本应添加 - 为HTTP。 CONF?我只需将它添加到那里,然后重新启动服务器?

感谢

回答

32

的代理设置,你描述被称为Reverse Proxy

通过使用mod_proxy模块,这在Apache中非常容易设置。

设置反向代理的基本mod_proxy指令是ProxyPass。您将在下面的行通常添加到您的本地Apache的配置文件(通常httpd.confapache2.conf):

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

在这种情况下,浏览器会请求http://localhost/remote/test.php但本地Apache服务器将被用作代理服务这个到http://www.mysite.com/test.php

您还需要确保在你的Apache配置文件中注释掉以下配置行:

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

确保你做的配置文件进行任何更改后重新启动本地Apache服务。

+0

你不需要将ProxyPass放入标签吗?我无法让Apache从外部开始 – blarg 2014-02-20 16:14:38

+1

ProxyPass应该位于或.htaccess文件中。 – 2014-03-11 14:05:52

+0

您可能想要定义一些[参数](http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass)(滚动到表格) – zupa 2014-09-11 13:12:17