NGINX 反向代理背后的 Matrix Synapse 管理 UI

NGINX 反向代理背后的 Matrix Synapse 管理 UI

我建立了 Matrix Synapse 服务器,到目前为止一切运行良好。

我唯一的问题是访问我从 github 获得的管理界面Awesome-Technologies / synapse-admin

我将 index.html 符号链接到 nginx webroot/var/www/html并在我的配置中编写了另一个服务器块,并在单独的服务器上自定义了反向代理的配置。我已经尝试了不同的端口和位置指令,但不知何故似乎没有任何效果。关于文档或工作示例,关于这个项目的信息非常稀少。我遗漏了什么吗?

Matrix 服务器配置

server {
    listen 8080;
    server_name matrix.example.tld www.matrix.example.tld;
    location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size 50M;
    }
}

#Matrix Federation
server {
    listen 8448;
    server_name matrix.example.tld www.matrix.example.tld;

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

server {
    listen 80;
    root /var/www/html;
    index index.html index.htm

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

反向代理配置

##Matrix
server {
    listen 80;
    server_name matrix.example.tld www. matrix.example.tld;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name matrix.example.tld www. matrix.example.tld;

    location /_matrix {
        proxy_pass http://SRV_IP:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 50M;
    }

    location /_synapse/admin {
        proxy_pass http://SRV_IP;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    # Federation Port
    listen  8448 ssl;

    location / {
        proxy_pass 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 >
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;


}

答案1

这就是当您请求时发生的情况https://matrix.example.tld/_synapse/admin

请求命中location /_synapse/admin反向代理虚拟主机配置中的第一个块。

反向代理nginx向 发出请求http://SRV_IP/_synapse/admin。 的默认模式proxy_pass是在 中没有指定URI时,将URI附加在域名/IP后面proxy_pass

此请求到达主 nginx 配置,并最终由最后一个虚拟主机配置进行处理。nginx 使用请求 URI 来定位请求的文件。

root/var/www/htmlURI 是/_synapse/admin。因此,nginx 尝试响应/var/www/html/_synapse/admin该请求。由于没有这样的目录,nginx 发送 404 响应。

如果您想要https://matrix.example.tld/_synapse/admin提供文件服务/var/www/html,则需要更改反向代理配置,如下所示:

location /_synapse/admin {
    proxy_pass http://SRV_IP/;
    proxy_set_header X-Forwarded-For $remote_addr;
}

这告诉 nginx 将部分的 URI 替换location/

相关内容