我尝试设置我的 prosody xmpp 服务器(更确切地说:我从一台不同的机器迁移到真的过时的版本)
大多数东西都很好用。除了mod_http_文件共享那是。
如果我在浏览器中打开它,一切看起来都还好。
查看配置,我现在已删除了几乎所有可能引起问题的东西。
但它就是无法连接——大多数客户端甚至没有检测到超时或类似情况(它只是在“传输”中等待,直到服务器连接关闭)。
我尝试查看 gajim 中的 XML 控制台,以查找问题的根源,但我遇到的只是一些检索该上传的“槽”标识符的调用。这从未得到任何响应,因此实际的上传甚至没有开始。
除了该模块的韵律页面之外,找不到任何文档,所以我很确定除了
VirtualHost "g33ky.de"
disco_items = {
{ "chat.g33ky.de", "file sharing service" },
}
Component "chat.g33ky.de" "http_file_share"
http_file_share_size_limit = 31 * 24 * 60 * 60
http_file_share_daily_quota = 100*1024*1024
好吧,那就添加一些证书(我通过 NGinx 从 certbot/letsencrypt 获得了这些证书 - 但它只响应端口 80/443 并将 https 流量转发到 5281)
答案1
问题可能是您的客户端无法发现上传服务,因为它位于不同的域中。Prosody 会自动向客户端宣传直接子域上的服务(例如,upload.chat.g33ky.de
会自动在 上宣传chat.g33ky.de
),以便客户端可以发现可用的服务。
如果您在完全不同的域名上提供服务,您需要告诉 Prosody 您想从主域名链接到该服务。这可以通过使用disco_items选项。
看起来您的配置已经接近正确,只是您将其列为"chat.g33ky.de"
本身的一个项目。只需将其更改为,"upload.example.org"
即可告知客户您的上传服务的正确域。
更正示例:
VirtualHost "chat.g33ky.de"
disco_items = {
{ "upload.example.org", "file sharing service" },
}
Component "upload.example.org" "http_file_share"
http_file_share_size_limit = 31 * 24 * 60 * 60
http_file_share_daily_quota = 100*1024*1024
答案2
好吧,实际上一下子出现了六个问题
主要有:
- 我正在从一些非常旧的韵律版本迁移,其数据库布局略有不同
- db 是我从旧服务器复制的一些 sqlite 文件
- 韵律写不出来一些对该 sqlite 文件进行操作,因为虽然文件本身是可写的,但放置它的文件夹却不可写
- 其中一个确实会导致写入错误的东西是启动文件传输所需的东西
我应该更仔细地阅读日志 - 其中确实存在写入错误。
感谢 MattJ 和 Menel(来自 prosody muc)帮助我弄清楚了这一点