Closed mingyec closed 2 years ago
要 Nohost 管理后台登记下域名
已经这样配置了域名了=-=
看下域名有没有配正确
域名是正确的,因为系统有做正则校验,我这里配的大概是这种:proxy-test.qq.com
。
如果没有配置域名或者配置不对,应该是访问不到nohost/index.html
页面的,现在的情况是能访问到index.html
页面,但是无法访问相应的接口
浏览器抓包看下这个 302 是哪个服务返回的
看了下,302 服务是 IP A 返回的,与 nohost 所在的 IP B 不是同一个 IP,我这边中间使用了一个 nginx 服务转发的,IP A 对应的是 Nginx 服务所在的地址。但我还是不能明白,为啥我 index.html 也是经过 Nginx 的转发,却能正常访问而不是 302 跳转;而我 nohost 里的接口请求,却是直接转发到 127.0.0.1 这个地址? 看了下 nohost 的源码,貌似服务请求默认就是走 127.0.0.1 这个 host 的,如果改成我 nohost 服务所在的 ip 可以行的通吗?
nginx 转发的时候要被 host 透传过来
大佬,还是没能解决问题。经过排查,302服务是 nohost 本身抛出来的,而不是来源于 nginx
现在可以确定的信息是,uiServer的接口请求到达了
passToWhistle
方法,经过了 proxyCtx
之后,可以看到我打印日志的地方,status code 是 302。这个应该能说明接口请求是到达了 uiServer 这一层的,但是后续转到 whistle 服务请求时就不知道为什么返回的是 302 了。
看下这个请求是不是 ui request,不是的话打印下 req.headers.host
:https://github.com/Tencent/nohost/blob/master/lib/index.js#L92
是 ui request
加微信群
加了,麻烦通过下验证:Nohost minyec
已定位到原因:请求是用nginx转发过来的,带上了x-forward-host请求头,请求转发到whistle之后被识别成需要转发的请求,导致302跳转。
Nohost 更新下到 v0.8.6
版本试试
我看到解决方法是删除 x-forward-host 这个字段,这是否会有影响
只对 Nohost 的内部请求做这个删除操作,正常请求不影响
目前是通过域名访问nginx转到nohost
昨天升级到 v0.8.6以后, 直接访问域名也会出现上边的问题,会302重定向到127.0.0.1上去, 后来在 SwitchyOmega 里, 把不代理的地址列表 加上nohost域名之后才解决
nohost.zuopeng.io
是做什么的,这个服务跟 nohost 部署在一起吗?
这个就是我们内部用的一个nohsot域名
本地 whistle 配了什么规则,nohost.zuopeng.io
在管理后台设置了吗
设置了的, 没有用本地whistle 这里问题是如果把 nohost对应设置的域名 也走nohost代理的话会出现上边的情况, 需要单独设置nohost域名不走代理
老版本没有这个问题
是个 bug,已经修复,更新到 v0.9.0
版本试试
可以了!!
nohost version: nohost@0.8.5 我在服务器上跑一个 nohost,使用 IP 能成功访问 nohost。当我配置域名,使用域名访问却开始报错,信息如下:
域名/cgi-bin/list
127.0.0.1/cgi-bin/list
,即不断重定向到本地的域名