是否可以使用同一个域名为两个来自两个 IP 范围的请求提供两个不同的网站。
例如我希望 mydomain.com 服务于网站 A,而来自欧洲的 IP 服务于网站 B。
使用 apache 2.2 可以实现这个功能吗?
谢谢
答案1
可以用iptables重定向来实现。
1)我假设第一个站点监听*:80
,第二个站点监听localhost:81
(或类似的东西)
2)应该查看第二个站点的 IP 范围可以重定向到 localhost:81。
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 81 -m comment --comment 'redirect range of ips to second site'
这意味着:将所有到 80 端口的 tcp 连接(-j REDIRECT)从网络 192.168.1.0/24(-s 192.168.1.0/24)路由(-j REDIRECT)到本地主机的 81 端口
您也可以尝试使用-m iprage --src-range 1.2.3.4-2.3.4.5
一个或多个语法条目-s ip/mask
来实现您想要的效果。
答案2
这当然是可能的,实际上甚至相当常见。并且有多种方法可以做到这一点,具体取决于您的操作系统、您使用的网络服务器等...
例如,如果您使用的是 apache,则可以使用 mod_geoip2。您可以在此处找到更多信息: http://dev.maxmind.com/geoip/mod_geoip2