地域选择
如何选择合适的服务地域
什么是地域?
Geelab 在全球多个地区部署了验证服务,您可以根据用户所在地区选择最近的服务节点,以获得最佳性能和合规性。
可用地域
🌏
全球
适用于全球用户或亚太地区
cap-global.geelabapi.com🇪🇺
欧洲
适用于欧盟用户(GDPR 合规)
cap-eu.geelabapi.com🇺🇸
北美
适用于北美用户
cap-na.geelabapi.com如何选择地域?
根据用户位置选择
选择离您的主要用户群体最近的地域:
| 用户主要位置 | 推荐地域 | 原因 |
|---|---|---|
| 中国、东南亚、日韩 | 全球 | 最低延迟 |
| 欧盟国家 | 欧洲 | GDPR 合规 + 低延迟 |
| 美国、加拿大 | 北美 | 低延迟 |
| 全球分布 | 全球 | 覆盖最广 |
根据合规要求选择
GDPR 合规要求: 如果您的用户包含欧盟居民,建议选择欧洲地域,确保数据存储在欧盟境内。
数据本地化: 不同地域的数据存储在对应的区域数据中心,不会跨境传输。
在控制台中选择地域
- 登录 Geelab 控制台
- 创建新的验证场景
- 在"地域选择"下拉菜单中选择合适的地域
- 保存后获取
captcha_id和captcha_key
重要: 地域一旦选择后不可更改。如需更换地域,需要创建新的验证场景。
在代码中使用
前端 SDK
前端 SDK 需要配置 apiServers 参数来指定地域:
// 根据您在控制台选择的地域配置对应的 apiServers
initGeetest4({
captchaId: 'YOUR_CAPTCHA_ID',
apiServers: ['cap-global.geelabapi.com'] // 全球地域
// apiServers: ['cap-eu.geelabapi.com'] // 欧洲地域
// apiServers: ['cap-na.geelabapi.com'] // 北美地域
}, callback);重要: apiServers 参数必须与您在控制台创建 ID 时选择的地域一致。
后端验证
后端验证时,必须使用与 captcha_id 对应的地域域名:
// ❌ 错误:使用了错误的地域
// captcha_id 是欧洲地域,但使用了全球域名
const url = 'https://cap-global.geelabapi.com/validate';
// ✅ 正确:使用对应的地域域名
const url = 'https://cap-eu.geelabapi.com/validate';完整示例
最佳实践: 将地域配置作为环境变量管理
// 根据您在控制台选择的地域配置
const REGION_URLS = {
global: 'https://cap-global.geelabapi.com/validate',
eu: 'https://cap-eu.geelabapi.com/validate',
na: 'https://cap-na.geelabapi.com/validate'
};
// 从环境变量读取
const REGION = process.env.GEELAB_REGION || 'global';
const VERIFY_URL = REGION_URLS[REGION];
module.exports = { VERIFY_URL };const { VERIFY_URL } = require('./config');
// 使用配置的地域 URL
const response = await axios.post(
`${VERIFY_URL}?captcha_id=${CAPTCHA_ID}`,
data
);地域对比
| 特性 | 全球 | 欧洲 | 北美 |
|---|---|---|---|
| 覆盖范围 | 全球 | 欧盟 | 北美 |
| GDPR 合规 | ❌ | ✅ | ❌ |
| 亚太延迟 | 🟢 低 | 🟡 中 | 🔴 高 |
| 欧洲延迟 | 🟡 中 | 🟢 低 | 🟡 中 |
| 北美延迟 | 🟡 中 | 🟡 中 | 🟢 低 |
常见问题
如何知道我的 captcha_id 是哪个地域?
在控制台的验证场景详情页可以查看地域信息。
可以同时使用多个地域吗?
可以。为不同地区的用户创建不同地域的验证场景,在代码中根据用户位置动态选择对应的 captcha_id。
// 根据用户位置选择不同的 captcha_id
const captchaId = userInEU
? 'EU_CAPTCHA_ID'
: 'GLOBAL_CAPTCHA_ID';
initGeetest4({ captchaId }, callback);前后端地域不一致会怎样?
验证会失败。前端使用的 captchaId 和 apiServers,以及后端验证使用的域名必须属于同一地域。
// ❌ 错误示例
// 前端使用欧洲地域的 captcha_id 和 apiServers
initGeetest4({
captchaId: 'EU_CAPTCHA_ID',
apiServers: ['cap-eu.geelabapi.com']
}, callback);
// 后端却使用全球地域的验证 URL
POST https://cap-global.geelabapi.com/validate // 验证会失败!
// ✅ 正确示例
// 前端使用欧洲地域的 captcha_id 和 apiServers
initGeetest4({
captchaId: 'EU_CAPTCHA_ID',
apiServers: ['cap-eu.geelabapi.com']
}, callback);
// 后端也使用欧洲地域的验证 URL
POST https://cap-eu.geelabapi.com/validate // 验证成功更换地域会影响现有用户吗?
是的。更换地域需要:
- 创建新地域的验证场景
- 更新前端代码中的
captcha_id和apiServers - 更新后端代码中的验证 URL
- 重新部署应用
建议在低峰期进行地域切换,并做好灰度发布。