当前位置: > Linux服务器 > apache >

Apache 反向代理配置

时间:2015-01-22 01:00来源:linux.it.net.cn 作者:IT


一.             应用场景
1.  当前有4台服务器,一台(A)对外网开发,另外3台(B、C、D)作为应用服务器

2.  服务器A,对外网开放,并映射了3个域名,分别为:www.b.com,www.c.com,www.d.com, 但是3个应用服务器都在内网,现在想通过访问这3个不同的域名来分别访问3台不同的应用服务器。

 

二.             实现方案
安装apache http服务器,使用apache服务器的反向代理,分别建立3个虚拟主机,来实现对3台应用服务器的映射。

 

三.             具体步骤
1.       修改conf/http.conf,将以下注释行释放,加载相应的http代理模块。

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module modules/mod_proxy_http.so

2.       修改conf/http.conf

NameVirtualHost *:80

将此行修改为与http服务器对应的端口号,具体端口号配置在Listen 80配置,可增加为多个。

3.       修改conf/http.conf

<VirtualHost *:80>

ServerName www.b.com

ProxyPass / http://192.168.1.111/

ProxyPassReverse / http://192.168.1.111/

</VirtualHost>

<VirtualHost *:80>

ServerName www.c.com

ProxyPass / http://192.168.1.112/

ProxyPassReverse / http://192.168.1.112/

</VirtualHost>

<VirtualHost *:80>

ServerName www.d.com

ProxyPass / http://192.168.1.113/

ProxyPassReverse / http://192.168.1.113/

</VirtualHost>

这里的ServerName与域名相对应,这3个域名都被映射到了同一台代理服务器,当通过这3个不同的域名访问时,请求被http服务器接受,分别转发到与域名相对应的虚拟主机上

4.       修改安全配置,如果出现以下错误

[Fri Dec 21 23:34:05 2007] [error] ap_proxy_connect_backend disabling worker for (192.168.1.111)
[Fri Dec 21 23:34:05 2007] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 192.168.1.111

这是由于开启了selinux的原因,通过执行以下命令就可解决:
setsebool -P httpd_can_network_connect=1

或者关闭selinux

 

四.             测试配置结果
在浏览器中分别输入3个域名,这些请求将被分别转发到3太不同的应用服务器,具体配置错误可见logs/error.log

(责任编辑:IT)
------分隔线----------------------------