2. 服务器A,对外网开放,并映射了3个域名,分别为:www.b.com,www.c.com,www.d.com, 但是3个应用服务器都在内网,现在想通过访问这3个不同的域名来分别访问3台不同的应用服务器。
二. 实现方案
三. 具体步骤 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)
这是由于开启了selinux的原因,通过执行以下命令就可解决: 或者关闭selinux
四. 测试配置结果 |