登录 立即注册

找到11869个回复

小兽 6楼回复 老虎会游泳拒绝GPT学术不端 (2023-03-30//)
@老虎会游泳,昨晚,微信wxpusher把最近几天艾特我的消息一股脑儿的发给我,今天我刚醒来,bot艾特我了😏
rkonfj 102楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)
老虎会游泳 101楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,我决定把HTTP/1.1 503 Service Unavailable改成HTTP/1.1 429 Too Many Requests,后者更符合标准。

老虎会游泳 100楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,对

rkonfj 99楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,所有 api 都是这样的吧

rkonfj 98楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@老虎会游泳,超速后会出现 Retry-After 响应头的话,那没必要再返回 JSON 了

老虎会游泳 97楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,目前有一个头信息:

	header('HTTP/1.1 503 Service Unavailable');
    header('Retry-After: '.$needWaitSeconds);
老虎会游泳 96楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,我可以添加一个功能来返回JSON

rkonfj 95楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@老虎会游泳,api 超速时返回的也是 HTML 吗?

老虎会游泳 94楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj

我会加一个参数,由管理员来指定这个头的 key, value就是用户的IP。这样hu60bot就可以在这个 api 报超速时,返回ws客户端超速对吧?

是的。

rkonfj 93楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)
老虎会游泳 92楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfjhu60bot怎么拿到客户端真实IP:目前是以下头信息,但我建议不要假定管理员开了代理,首先使用remote addr。除非管理员指定了一个头信息参数,再使用它。

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
rkonfj 91楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@老虎会游泳,明白了,你说的是 hu60bot 请求 hu60api 时的 ip。我会加一个参数,由管理员来指定这个头的 key, value就是用户的IP。这样hu60bot就可以在这个 api 报超速时,返回ws客户端超速对吧?

hu60bot怎么拿到客户端真实IP?x-real-ip 可以吗?

老虎会游泳 90楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,是hu60bot访问了/user.index.json,不是用户访问了/user.index.json,nginx不可能神奇的感知到背后的用户IP是什么。

老虎会游泳 89楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,所以我们需要req.Header.Set(一个自定义头信息的变量, 用户的真实IP)

老虎会游泳 88楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,如果http.NewRequestWithContext(ctx, http.MethodGet, c.fullURL("/user.index.json")不传递IP,nginx显然不知道用户的IP是什么。

rkonfj 87楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@老虎会游泳,明白了。

真实 IP 那个,可以从 nginx 传到 后端 吗?用 IP 来限速好点

老虎会游泳 86楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj

你可以在HTTP请求中添加头信息,把速率限制转移给单个用户。

图片.png(56.18 KB)

老虎会游泳 85楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@rkonfj,这里达到了限速,所以没有人可以认证通过。顺便一提 udSySELORQDee6_Jxv-YPMEAsAAA 已经被我设为无效了,所以公开也没关系。

		// 获取sid(跨域时禁用cookie)
		sid := getRequestParam(r, "sid", noCookie)
		if sid == "" || sid == "udSySELORQDee6_Jxv-YPMEAsAAA" {
			m.responseUnauthenticated(ws)
			logrus.Warn("authentication failed: sid not found")
			return
		}

        // 这里达到了限速
		res, err := m.hu60Client.GetProfile(context.Background(), sid)
		if err != nil {
			m.responseUnauthenticated(ws)
			logrus.Warn("authentication failed: ", err.Error())
			return
		}
rkonfj 84楼回复 rkonfj[网页插件] hu60bot: 立即与openai 对话 (2023-03-30//)

@老虎会游泳,我还不太理解。你现在的架构应该是 nginx 转发流量到 php-fpmhu60bot 吧?

  1. 你可以在HTTP请求中添加头信息,把速率限制转移给单个用户。

怎么加头信息?作为服务端是读取请求头吧?如果是在 nginx 之后,反代的时候 把网络的真实 ip 放在 x-real-ip 中,hu60bot 可以拿到了不是吗?

  1. 因为现在的超速都算在127.0.0.1头上了,所以大家都连不上。把真实IP填充在头信息里,我就可以把限速算在具体用户头上了。

你的超速不是 php 实现的吗?怎么会阻止 websocket 连接?

下一页 上一页 (234 / 594页)

3月25日 02:14 星期三

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1