Tencent / nohost

基于 Whistle 实现的多账号多环境远程配置及抓包调试平台
https://nohost.pro
Other
1.4k stars 160 forks source link

切换环境失败问题 #208

Open linliyuan opened 6 months ago

linliyuan commented 6 months ago

如下图,页面已经切换到了测试环境(看着切换环境是生效的),但是nohost实际停留在正式环境(看圆点是正式环境),需要再次刷新页面才生效为测试环境,想问下以前有遇到过这种情况吗? 切换是nohost出现页面刷新比较慢(3~5秒)的情况,不知道是否与此有关

image

avwo commented 6 months ago

看下 nohost 管理后台 / Whistle / Online 的 CPU 和内存使用情况。

linliyuan commented 6 months ago

后台是比较正常的,而且其他人访问没有问题,就只有一台电脑出现了,不是先记录用户环境,再请求成功的吗? 看着目前是请求成功(访问到测试环境),再记录用户环境

image

linliyuan commented 6 months ago

排查到跟nohost-client有关,背景是目前我们nohost有存在外网访问的场景,之前会导致大家出口ip是同一个而互相干扰环境选择,于是在代理插件 whistle.proxy-settings-hw 上增加了逻辑获取本地的ip作为唯一标识传入到 reqHeaders://(x-whistle-client-id=xxxx) 请求头中,代码如下: image

但是后台抓包日志看到是没有clienId,抓包工具由 autosave 修改,应该不会出错。觉得有如下两种可能,大佬也帮忙看下两个中是否有问题:

  1. nohost服务端解析clientId功能有问题
  2. client代理时没有把请求头加上

当前解决方案,临时在nohost服务端拦截身份标识丢失的请求: image