日期:2014-05-16  浏览次数:20789 次

通过配置Apache反向代理实现外网域名映射至内网服务器

假设你拥有一个公网IP,又拥有多个公网域名映射到这个IP,例如:

www.host1.com -> 66.66.66.66

www.host2.com -> 66.66.66.66

?

现在你已经有一台Apache服务器在响应这个IP的HTTP请求了,也就是说对于两个域名的访问都会被这台服务器所响应。并且这台服务器同时也和内网相连。

如果你希望把其中一个域名的请求转发到内网中一台服务器上。例如:

www.host1.com -> 主服务器(公网可见)

www.host2.com -> 内网服务器(内网IP:192.168.1.102)

?

即可在httpd.conf中通过如下的配置来实现之~~

?

ServerName your.server.name
NameVirtualHost 66.66.66.66
Listen 80

<IfModule mod_proxy.c>
ProxyRequests off
<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

<VirtualHost 66.66.66.66>
  ServerName www.host1.com
  ProxyPass / http://127.0.0.1/
  ProxyPassReverse / http://127.0.0.1/
</VirtualHost>

<VirtualHost 66.66.66.66>
  ServerName www.host2.com
  ProxyPass / http://192.168.1.102/
  ProxyPassReverse / http://192.168.1.102/
</VirtualHost>
</IfModule>