Tôi đang thiết lập ủy quyền trên máy chủ khớp thần kinh. Tôi làm theo các tài liệu chính thức và dường như có mọi thứ tại chỗ. Tôi gặp lỗi sau trên các bản ghi nginx của example.com khi tôi nhập máy chủ nhà "example.org" trong ứng dụng khách, được cho là ủy quyền lưu lượng khách hàng cho "synapse.example.com":
[lỗi] 28804#28804: *246 open() "/usr/share/nginx/html/_matrix/client/r0/login" không thành công (2: Không có tệp hoặc thư mục như vậy) [..]
Máy khách dường như yêu cầu thông tin máy chủ ma trận từ máy chủ sai, thay vì máy chủ được ủy quyền.
cấu hình nginx trên example.com:
người phục vụ {
server_name www.example.com example.com; # được quản lý bởi Certbot
vị trí /.well-known/matrix/server {
ứng dụng default_type/json;
trả về 200 '{"m.server": "synapse.example.com:443"}';
}
vị trí /.well-known/matrix/client {
ứng dụng default_type/json;
trả về 200 '{"m.homeserver":{"base_url": "https://synapse.example.com"}}';
}
lắng nghe [::]:443 ssl ipv6only=on; # được quản lý bởi Certbot
nghe 443 ssl; # được quản lý bởi Certbot
[...chứng chỉ ssl...]
}
người phục vụ {
nếu ($host = www.example.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nếu ($host = example.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nghe 80 ;
nghe [::]:80 ;
server_name www.example.com example.com;
trả lại 404; # được quản lý bởi Certbot
}
synapse.example.com cấu hình nginx:
người phục vụ {
nghe 443 ssl http2;
nghe [::]:443 ssl http2;
# Đối với cổng liên kết
nghe 8448 ssl http2 default_server;
lắng nghe [::]:8448 ssl http2 default_server;
server_name synapse.example.com;
vị trí ~ ^(/_matrix|/_synapse/client) {
[…]
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Máy chủ lưu trữ $host;
[…]
}
}
Và cuối cùng, homeserver.yaml trên synapse.example.com:
[…]
public_baseurl: https://synapse.example.com/
sự có mặt:
người nghe:
- cổng: 8008
tls: sai
loại: http
x_forwarded: đúng
bind_addresses: ['::1', '127.0.0.1']
tài nguyên:
- tên: [khách hàng, liên đoàn]
nén: sai
[…]
Tôi hiểu rằng lỗi trên example.com ngụ ý rằng một số yêu cầu nhất định không được chuyển tiếp đến máy chủ được ủy quyền tại synapse.example.com, nhưng không thể tìm thấy bất kỳ điều gì trong tài liệu về khớp thần kinh hoặc ở nơi khác. Tôi đã mong đợi rằng các máy khách/giao thức ma trận phân tích cú pháp JSON .well-known và sau đó tự xử lý việc ủy quyền. Rõ ràng là không.
Ai đó có thể chỉ cho tôi đúng hướng cách gỡ lỗi ở đây không? Hoặc thậm chí đưa ra lời giải thích về những gì tôi đang làm sai. Trợ giúp được đánh giá cao
Chỉnh sửa:
Khai mạc https://synapse.example.com/_matrix/key/v2/server trong trình duyệt, json chứa cặp khóa/giá trị
server_name "example.com"
Tôi không chắc điều này được định nghĩa ở đâu và liệu điều này có đúng không.
(BTW, tất cả các tham chiếu đến "synapse.example.com" và "example.com" tương ứng đại diện cho các tên miền thực.)