Open shoucandanghehe opened 2 years ago
明白了 还有两个问题
本项目是直接用nonebot2的ReversedDriver实现web服务的吗 如果公网直接暴露端口会不会有安全性问题,毕竟没有ssl加密之类
本项目是直接用nonebot2的ReversedDriver实现web服务的吗
是, 具体来讲是基于NoneBot默认使用的FastAPI
, 理论上有可能兼容其他ReverseDriver
, 但是我不会
如果公网直接暴露端口会不会有安全性问题,毕竟没有ssl加密之类
有, 我的建议是为uvicorn
配置HTTPS或者使用其他Web服务器(比如Caddy或者Nginx)进行反向代理
而且安全性问题不止SSL加密, 因为你在事实上也同时暴露了OneBot反向ws监听的接口, 所以你最好配置access_token
, 或者只对外开放plugin-gocqhttp
提供的接口(即/go-cqhttp
路径下暴露的内容), 并配置WEBUI_PASSWORD
等项目
P.S. 根据 #124 ,似乎uvicorn的HTTP/1.1在长时间连接的情况下性能会比较差,所以这也是推荐使用反代的一个理由
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
传输实时日志使用的是WebSocket, Nginx需要额外的配置项来进行支持
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
可以参考我的配置方法
location /<path_to_your_bot>/ {
proxy_pass http://127.0.0.1:<port>/go-cqhttp/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
可以参考我的配置方法
location /<path_to_your_bot>/ { proxy_pass http://127.0.0.1:<port>/go-cqhttp/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
请问location后面填的是本地路径还是网络路径?
是网络路径。
例如,你的bot绑定的端口是 11451, 然后希望用 https://
location /1919810/bot/ {
proxy_pass http://127.0.0.1:11451/go-cqhttp/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
这个配置本质上只是对请求进行了转发,并不会涉及到任何本地路径,就算你的bot不在这台服务器上,只要网络地址通畅依旧是可以访问的。
也就是说如果我想使用0.0.0.0:8000/go-cqhttp/访问这个网址只要填location /go-cqhttp/{...}就可以对吧
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
我用的XShell这款软件的隧道功能,也能访问服务器上的本地。设置本地的侦听端口和目标主机的IP和端口,通过XShell连接上服务器后,就可以在本地访问目标主机的本地了。假设本地的侦听端口和服务器的端口都是12345,在本地输入:127.0.0.1:12345/go-cqhttp/就可以访问了。
为了让本地其他设备可以访问127.0.0.1:8080/go-cqhttp用了nginx反代,连接状态显示断开,无法自动接收消息,需要手动点击刷新,请问有什么解决办法吗
我用的XShell这款软件的隧道功能,也能访问服务器上的本地。设置本地的侦听端口和目标主机的IP和端口,通过XShell连接上服务器后,就可以在本地访问目标主机的本地了。假设本地的侦听端口和服务器的端口都是12345,在本地输入:127.0.0.1:12345/go-cqhttp/就可以访问了。
这并不是什么 xshell 的隧道功能,是 ssh 的隧道功能,你在任何有完整功能的 ssh 客户端和服务端间理论上都能完成此操作,只不过你需要首先创建隧道才能访问,某种程度上也是挺麻烦的
在服务器上部署时较难访问到127.0.0.1 可以添加一个可选配置 让用户能自定义后端监听IP