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)
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
四. 测试配置结果 |