在下面的操作之前,我们假定您已经在CentOS 5 (译者注:CentOS 6, 7一样适用。)上搭建好了Apache服务器。此外,接下来的操作应该在shell中进行,请确保您拥有root权限。
启用Proxy模块
CentOS的Apache HTTP服务器包中已经包含了proxy模块。我们先新建下面这个文件:/etc/httpd/conf.d/proxy.conf 内容为:
ProxyRequests Off
AddDefaultCharset off
Order deny,allow
Allow from all
ProxyVia On
这样就打开了proxy模块的支持。接下来,执行此条语句重启Apache:
/etc/init.d/httpd restart
Apache会完全重启。若出现问题,可查看错误日志,获取更多信息。
将域名传递至Lighttpd
假设我们已经有了一个网站,地址为www.firstsite.org,此网站运行作为一个普通的虚拟主机运行在Apache服务器之下。我们将用Apache把第二个网站www.secondsite.org的请求传送给一个已经配置好、监听8080端口的lighttpd实例。在你的Apache服务器虚拟主机配置文件中,添加下列信息:
ServerAdmin support@secondsite.org
ServerName secondsite.org
ServerAlias www.secondsite.org
ProxyPass / http://localhost:8080/
#SSLProxyEngine On
若站点采用SSL,则将上述倒数第二行的注释符删去。上述语段中,ProxyPass目录告知Apache转发所有这个站点的请求给一个监听8080端口的服务器。如果目标服务器是在另一台VPS上(比如是一台只有内网连接的服务器上),可以再此处指明地址。此时,执行 /etc/init.d/httpd reload,我们将启用这个网站转发。
将某一特定URL传递至Lighttpd
如果我们希望将http://www.firstsite.org/myapp/这一URL交由运行在lighttpd下的一个web应用来处理,我们只需在firstsite.org网站的虚拟主机配置文件中添加下面一行即可:
ProxyPass /myapp http://localhost:8080/
添加完毕后应当用/etc/init.d/httpd reload重新加载配置文件以启用转发。上述方法是一个能够实现单域名下多web服务器处理请求的简便方法。