(转)apache反向代理配置

原文链接:http://blog.itpub.net/23071790/viewspace-706143

一.应用场景

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

--------------------补充-----------------------------------

找到文件apache/conf/httpd.conf

开启反向代理支持
LoadModule proxy_module       modules/mod_proxy.so
LoadModule proxy_http_module  modules/mod_proxy_http.so

添加反向代理配置
ProxyPass /urcweb/ http://10.10.10.89:8080/urcweb/
ProxyPassReverse /urcweb/ http://10.10.10.89:8080/urcweb/

--------------------------------------------------------

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2047679