反向代理简言之就是通过一台代理服务器,让Internet用户可以访问到内部网络上的服务器。

实验环境:一台带有两块网卡的OB服务器,一块连接外网1.1.1.1,一块连接内网192.168.100.1
1、开启apache的代理模块。修改httpd.conf文件,去掉下面的注释
 
 
  
  1. #LoadModule proxy_module    /usr/lib/apache/modules/libproxy.so 
  2.  LoadModule proxy_module    /usr/lib/apache/modules/libproxy.so 
 
2、启用请求转发功能。找到<IfModule mod_proxy.c>模块,修改如下
 
 
  
  1. <IfModule mod_proxy.c> 
  2. ProxyRequests Off 
  3.  
  4. <Directory proxy:*> 
  5.     Order deny,allow 
  6.     Allow from all  
  7. </Directory> 
  8. </IfModule> 
 
3、配置反向代理。在httpd.conf文件中的Section 3: Virtual Hosts中进行virtualhost配置
 
 
  
  1. NameVirtualHost 1.1.1.1 
  2. <VirtualHost 1.1.1.1> 
  3.     ServerName www.abc.com 
  4.     ProxyPass / http://192.168.100.2/ 
  5.     ProxyPa***everse / http://192.168.100.2/ 
  6.         SetEnv force-proxy-request-1.0 1 
  7.     SetEnv proxy-nokeepalive 1 
  8. </VirtualHost> 
 
还可以重定向到https协议的网址,前提是服务器上要先配置apache的ssl证书
 
 
  
  1. <VirtualHost 1.1.1.1> 
  2.     ServerName it.abc.com 
  3.     ProxyPass / https://192.168.100.3/ 
  4.     ProxyPa***everse / https://192.168.100.3/ 
  5.     SetEnv force-proxy-request-1.0 1 
  6.     SetEnv proxy-nokeepalive 1 
  7.     SSLEngine on 
  8.     SSLCertificateFile /etc/ssl/server.crt 
  9.     SSLCertificateKeyFile /etc/ssl/private/server.key 
  10. </VirtualHost> 
 
4、进行测试。对部署的内部服务进行访问时,要对DNS做相应的设置,即DNS可以正常解析到外网网卡上提供的域名
 
 
  
  1. www.abc.com 1.1.1.1 
  2. it.abc.com 1.1.1.1 
 
这时就可以通过域名对多台内部服务器进行映射访问了