我建立了 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/html
URI 是/_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
为/
。