首页 > 解决方案 > ejabberd 20.04 mod_http_upload 不工作

问题描述

我已经在 rhel 7.5 上安装了 ejabberd 20.04。出于测试目的,防火墙已停止,selinux 已禁用。我正在使用 gajim 1.2.1 作为客户端。在我的/opt/ejabberd/conf/ejabberd.yml我只添加了以下几行:

listen:
  request_handlers:
    "/upload": mod_http_upload

shaper_rules:
  soft_upload_quota:
    1000: all
  hard_upload_quota:
    1100: all

modules:
  mod_http_upload:
    put_url: "https://@HOST@:5443/upload"
    docroot: /ejabberd/upload/

其他一切都是默认的。我没有替换证书文件。当我尝试发送文件时,没有任何反应。里面/opt/ejabberd/logs/ejabberd.log只有:

[info] <0.468.0>@mod_http_upload:create_slot:832 
   Got HTTP upload slot for test@chat.im.test/chat.im.test
   (file: testfile.txt, size: 14242)
[info] <0.393.0>@ejabberd_listener:accept:256 
   (<0.551.0>) Accepted connection 
   [::ffff:192.168.10.10]:50749 -> [::ffff:192.168.20.10]:5443

我究竟做错了什么?

标签: ejabberd

解决方案


请注意,如果您提供带有 HTTPS 的 URL,例如

modules:
  mod_http_upload:
    put_url: https://@HOST@:5443/upload

然后你必须启用 TLS,比如

listen:
  -
    port: 5443
    ip: "::"
    module: ejabberd_http
    tls: true
    request_handlers:
      /upload: mod_http_upload

另一方面,如果你没有得到足够的信息记录,你可以试试这个,它可能会提供一些有意义的键:

loglevel: debug

推荐阅读