httpd :根据远程 IP 的不同,网站也不同

httpd :根据远程 IP 的不同,网站也不同

是否可以使用同一个域名为两个来自两个 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

相关内容