php - 哪种是按国家/地区重定向用户的最佳可扩展方式?

标签 php linux .htaccess redirect country

我有一个网站,几个月后会有来自不同国家的流量, 但这取决于我应该展示哪个网站的国家。

目前我正在使用免费的 maxmind GeoIp 重定向流量, 用 php。

但我认为,如果每天有 40,000 个唯一用户,每天大约有 100,000 个请求,这将非常缓慢。

我考虑过用 .htaccess 来做这件事,但我认为请求时间会多一点。

我现在的最终想法是根据国家/地区在不同的文件夹(或子域)中以网站的 html 构建主页,例如 us.website.com 并将用户重定向到那里,但我不知道哪个方式是最快的用户体验。

服务器是LAMP(我可以选择发行版)

请帮我决定!! 感谢一切!

最佳答案

嗯, 我觉得你太担心了,但让我解释一下:

  1. IP -> country 是一个哈希表,所以我希望能花很少的时间来解决您的查询
  2. 是静态信息,解析后可以缓存
  3. 100k 页面浏览量和 40k 用户意味着每 2.5 个页面浏览量对应 1 个用户,“短”导航历史记录(稍后解释)

对于这种情况我建议:

  1. 使用 PHP 查询数据库(将代码放在执行的“头部”)并将国家/地区存储/缓存在 cookie 中并提供请求。一个简单的 if(empty($COOKIE['country'])) 将允许理解是否查询数据库
  2. 避免重定向到不同的站点 (us.domain.com),您将向每个用户传递 2.5 到 3.5 个请求(多出约 40%)
  3. 当站点需要更多资源时,您可以添加增加云资源或添加具有相同地址 (www.domain.com) 但新 IP 执行 DNS 轮询的新机器,适用于较短的导航历史记录。

附言

如果你要集群 $_SESSION 共享将是真正的挑战,所以从现在开始你可以看看 session 管理器

关于php - 哪种是按国家/地区重定向用户的最佳可扩展方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061002/

相关文章:

每个文件的 PHP 复制 + 覆盖对话框

php - 如何更改 TinyMCE 的背景?

php - 连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息

c - 使用两个不同的状态同步两个进程

linux - 无法在 slackware 中更新 resolv.conf 文件

security - htaccess 身份验证的安全性如何

php - 非常奇怪的 $_SESSION 行为

apache - 使用 Apache 关闭特定文件的缓存

javascript - 使用javascript禁用iframe的重定向

linux - linux单个目录下文件太多怎么办?