Рейтинг:0

Пользовательский интерфейс администратора Matrix Synapse за обратным прокси-сервером NGINX

флаг ru

Я настроил сервер Matrix Synapse, и пока все работает нормально.

Моя единственная проблема - доступ к пользовательскому интерфейсу администратора, который я получил от github. Awesome-технологии / синапс-админ

Я сделал символическую ссылку на index.html в веб-корневом каталоге nginx по адресу /var/www/html и написал еще один серверный блок в моей конфигурации, а также настроил конфигурацию на моем обратном прокси на отдельном сервере. Я уже пробовал с разными портами и директивами местоположения, но почему-то ничего не работает. Что касается документации или рабочих примеров, информация об этом проекте довольно скудна. Я что-то пропустил?

Конфигурация сервера Matrix

сервер {
    слушать 8080;
    имя_сервера matrix.example.tld www.matrix.example.tld;
    расположение /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size 50M;
    }
}

#Матричная Федерация
сервер {
    слушать 8448;
    имя_сервера matrix.example.tld www.matrix.example.tld;

    место расположения / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

сервер {
    слушать 80;
    корень /var/www/html;
    индекс index.html index.htm

    имя сервера _;

    место расположения / {
        try_files $uri $uri/ =404;
    }
}

Конфигурация обратного прокси

##Матрица
сервер {
    слушать 80;
    имя_сервера matrix.example.tld www. matrix.example.tld;
    вернуть 301 https://$host$request_uri;
}

сервер {
    слушать 443 ssl;
    имя_сервера matrix.example.tld www. matrix.example.tld;

    расположение /_matrix {
        прокси_пароль http://SRV_IP:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $ схема;
        client_max_body_size 50M;
    }

    местоположение /_synapse/admin {
        прокси_пароль http://SRV_IP;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    # Порт Федерации
    слушать 8448 ssl;

    место расположения / {
        прокси_пароль http://SRV_IP:8448;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    ssl_certificate /etc/letsencrypt/live/matrix.example.tld/>
    ssl_certificate_key /etc/letsencrypt/live/matrix.example.tld >
    включить /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;


}
флаг us
Пожалуйста, добавьте информацию, какой запрос вы пробовали, каков был ожидаемый результат и каков был фактический результат.
флаг ru
Я попытался запросить /_synapse/admin и получил ошибку 404. Ожидаемым результатом будет index.html вышеупомянутого проекта github.
Рейтинг:0
флаг us

Вот что происходит, когда вы запрашиваете https://matrix.example.tld/_synapse/admin.

Запрос поступает первым местоположение /_synapse/admin блокировать в конфигурации виртуального хоста обратного прокси-сервера.

Обратный прокси nginx делает запрос к http://SRV_IP/_synapse/admin. Режим по умолчанию для proxy_pass заключается в добавлении URI после доменного имени/IP-адреса, когда URI не указан в proxy_pass.

Этот запрос попадает в основную конфигурацию nginx, где он обрабатывается последней конфигурацией виртуального хоста. Там nginx использует URI запроса для поиска файлов для запроса.

корень является /var/www/html и URI /_синапс/админ. Итак, nginx пытается обслуживать /var/www/html/_synaps/admin как ответ на запрос. Поскольку такого каталога нет, nginx отправляет ответ 404.

Если хочешь https://matrix.example.tld/_synapse/admin для обслуживания файлов в /var/www/html, вам необходимо изменить конфигурацию обратного прокси следующим образом:

местоположение /_synapse/admin {
    прокси_пароль http://SRV_IP/;
    proxy_set_header X-Forwarded-For $remote_addr;
}

Это говорит nginx заменить URI в место расположения часть с /.

флаг ru
Отличный ответ! Я просмотрел документацию nginx, но мне было не совсем понятно, как работает вся эта переадресация. Еще раз спасибо

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

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