Score:0

การมอบสิทธิ์ matrix-synapse ล้มเหลวเนื่องจากข้อผิดพลาด "ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว" บนเซิร์ฟเวอร์ผู้รับมอบสิทธิ์

ธง 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:

เซิร์ฟเวอร์ {
        server_name www.example.com ตัวอย่าง.com; # จัดการโดย Certbot


    ตำแหน่ง /.well-known/matrix/server {
        แอปพลิเคชัน default_type/json;
        ส่งคืน 200 '{"m.server": "synapse.example.com:443"}';
    }

    ตำแหน่ง /.well-known/matrix/client {
        แอปพลิเคชัน default_type/json;
        กลับ 200 '{"m.homeserver":{"base_url": "https://synapse.example.com"}}';  
    }


    ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย 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 ;
    server_name www.example.com ตัวอย่าง.com;
    กลับ 404; # จัดการโดย Certbot
}

synapse.example.com การกำหนดค่า nginx:

เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    ฟัง [::]:443 ssl http2;

    #สำหรับพอร์ตสหพันธรัฐ
    ฟัง 8448 ssl http2 default_server;
    ฟัง [::]:8448 ssl http2 default_server;

    server_name synapse.example.com;

    ตำแหน่ง ~ ^(/_matrix|/_synapse/client) {
        [...]
        proxy_pass http://localhost:8008;
        proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header โฮสต์ $host;
        [...]
    }
}

และสุดท้าย homeserver.yaml บน synapse.example.com:

[...]
public_baseurl: https://synapse.example.com/
การมีอยู่:
ผู้ฟัง:
  - พอร์ต: 8008
    tls: เท็จ
    พิมพ์: http
    x_forwarded: จริง
    bind_addresses: ['::1', '127.0.0.1']
    ทรัพยากร:
      - ชื่อ: [ลูกค้า สหพันธรัฐ]
        บีบอัด: เท็จ
[...]

ฉันเข้าใจว่าข้อผิดพลาดบน example.com บอกเป็นนัยว่าคำขอบางอย่างไม่ได้ส่งต่อไปยังโฮสต์ที่ได้รับสิทธิ์ที่ synapse.example.com แต่ไม่พบสิ่งใดในเอกสารของ synapse หรือที่อื่นๆ ฉันคาดว่าเมทริกซ์ไคลเอนต์ / โปรโตคอลจะแยกวิเคราะห์ JSON .well-known จากนั้นจัดการการมอบหมายเอง ชัดเจนว่าไม่.

ใครสามารถชี้ฉันในทิศทางที่ถูกต้องว่าจะดีบักที่นี่ได้อย่างไร หรือแม้แต่ให้คำอธิบายว่าฉันทำผิดอะไร ช่วยชื่นชมอย่างมาก

แก้ไข: เปิด https://synapse.example.com/_matrix/key/v2/server ในเบราว์เซอร์ json มีคู่คีย์/ค่า

server_name "example.com"

ฉันไม่แน่ใจว่าสิ่งนี้กำหนดไว้ที่ใดและถูกต้องหรือไม่

(BTW การอ้างอิงถึง "synapse.example.com" และ "example.com" ทั้งหมดแสดงถึงชื่อโดเมนจริงตามลำดับ)

Laenka-Oss avatar
lk flag
ไม่แน่ใจนัก แต่ตามข้อผิดพลาด ให้ตรวจสอบตำแหน่ง `/login/` หรือ URL และวิธีการใช้พร็อกซี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา