Рейтинг:0

сбой делегирования matrix-synaps из-за ошибки «Нет такого файла или каталога» на делегирующем сервере

флаг in

Я настраиваю делегирование на сервере синапсов. Я следую официальным документам и, кажется, все на месте. Я получаю следующую ошибку в журналах nginx example.com, когда я вхожу на домашний сервер «example.org» в клиенте, который должен делегировать клиентский трафик на «synapse.example.com»:

[ошибка] 28804#28804: *246 open() "/usr/share/nginx/html/_matrix/client/r0/login" не удалось (2: нет такого файла или каталога) [..]

Клиент, похоже, запрашивает информацию о сервере матрицы не с того сервера, а с делегированного.

Конфиг nginx на example.com:

сервер {
        имя_сервера www.example.com example.com; # под управлением Certbot


    местоположение /.well-known/matrix/server {
        приложение по умолчанию_тип/json;
        return 200 '{"m.server": "synapse.example.com:443"}';
    }

    местоположение /.well-known/matrix/client {
        приложение по умолчанию_тип/json;
        return 200 '{"m.homeserver":{"base_url": "https://synapse.example.com"}}';  
    }


    слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
    слушать 443 ssl; # под управлением Certbot

    [...ssl-сертификаты...]

}
сервер {
    если ($host = www.example.com) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    если ($host = example.com) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    слушать 80 ;
    слушать [::]:80 ;
    имя_сервера www.example.com example.com;
    вернуть 404; # под управлением Certbot
}

Конфигурация synapse.example.com nginx:

сервер {
    слушать 443 ssl http2;
    слушать [::]:443 ssl http2;

    # Для порта федерации
    слушать 8448 ssl http2 default_server;
    слушать [::]:8448 ssl http2 default_server;

    имя_сервера synapse.example.com;

    расположение ~ ^(/_matrix|/_synapse/client) {
        [...]
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $ схема;
        proxy_set_header Хост $host;
        [...]
    }
}

И, наконец, файл homeserver.yaml на сайте synapse.example.com:

[...]
public_baseurl: https://synapse.example.com/
присутствие:
слушатели:
  - порт: 8008
    тлс: ложь
    тип: http
    x_forwarded: правда
    bind_addresses: ['::1', '127.0.0.1']
    Ресурсы:
      - имена: [клиент, федерация]
        сжать: ложь
[...]

Я понимаю, что ошибка на сайте example.com подразумевает, что определенные запросы не перенаправляются на делегированный хост по адресу synapse.example.com, но ничего не удалось найти в документации по синапсу или где-либо еще. Я ожидал, что матричные клиенты/протокол анализируют общеизвестный JSON, а затем сами обрабатывают делегирование. Очевидно нет.

Может ли кто-нибудь указать мне правильное направление, как отлаживать здесь? Или даже дать объяснение, что я делаю неправильно. Помощь высоко ценится

Редактировать: Открытие https://synapse.example.com/_matrix/key/v2/сервер в браузере json содержит пару ключ/значение

имя_сервера "example.com"

Я не уверен, где это определено, и правильно ли это.

(Кстати, все ссылки на «synapse.example.com» и «example.com» представляют собой настоящие доменные имена соответственно.)

Laenka-Oss avatar
флаг lk
Хотя не совсем уверен, но в соответствии с ошибкой проверьте свое местоположение или URL-адрес `/login/` и как вы его проксировали.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.