Score:0

Matrix Synapse admin UI ที่อยู่เบื้องหลัง NGINX reverse proxy

ธง ru

ฉันตั้งค่าเซิร์ฟเวอร์ Matrix Synapse และทุกอย่างทำงานได้ดีจนถึงตอนนี้

ปัญหาเดียวของฉันคือการเข้าถึง UI ของผู้ดูแลระบบที่ฉันได้รับจาก GitHub สุดยอดเทคโนโลยี / ไซแนปส์ผู้ดูแลระบบ

ฉันเชื่อมโยง index.html เข้ากับ nginx webroot ที่ /var/www/html และเขียนบล็อกเซิร์ฟเวอร์อื่นในการกำหนดค่าของฉันรวมถึงปรับแต่งการกำหนดค่าบนพร็อกซีย้อนกลับของฉันบนเซิร์ฟเวอร์แยกต่างหาก ฉันได้ลองใช้พอร์ตและคำสั่งตำแหน่งต่างๆ แล้ว แต่ดูเหมือนจะไม่มีอะไรทำงาน ในส่วนของเอกสารหรือตัวอย่างการทำงาน ข้อมูลของ Project นี้ค่อนข้างหายาก ฉันพลาดอะไรไปรึเปล่า?

การกำหนดค่าเซิร์ฟเวอร์เมทริกซ์

เซิร์ฟเวอร์ {
    ฟัง 8080;
    server_name matrix.example.tld www.matrix.example.tld;
    ตำแหน่ง /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
        client_max_body_size 50M;
    }
}

#สหพันธ์เมทริกซ์
เซิร์ฟเวอร์ {
    ฟัง 8448;
    server_name matrix.example.tld www.matrix.example.tld;

    ที่ตั้ง / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
    }
}

เซิร์ฟเวอร์ {
    ฟัง 80;
    รูท /var/www/html;
    ดัชนี index.html ดัชนี.htm

    ชื่อเซิร์ฟเวอร์ _;

    ที่ตั้ง / {
        try_files $uri $uri/ =404;
    }
}

ย้อนกลับการกำหนดค่าพร็อกซี

##เมทริกซ์
เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name matrix.example.tld www. matrix.example.tld;
    ส่งคืน 301 https://$host$request_uri;
}

เซิร์ฟเวอร์ {
    ฟัง 443 ssl;
    server_name matrix.example.tld www. matrix.example.tld;

    ตำแหน่ง /_matrix {
        proxy_pass http://SRV_IP:8080;
        proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 50M;
    }

    ตำแหน่ง /_synapse/ผู้ดูแลระบบ {
        proxy_pass http://SRV_IP;
        proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
    }

    #สหพันธ์การท่าเรือ
    ฟัง 8448 ssl;

    ที่ตั้ง / {
        proxy_pass http://SRV_IP:8448;
        proxy_set_header X-ส่งต่อ-สำหรับ $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 flag
โปรดเพิ่มข้อมูล คำขอที่คุณลอง ผลลัพธ์ที่คาดหวังคืออะไร และผลลัพธ์จริงคืออะไร
ru flag
ฉันพยายามร้องขอ /_synapse/admin และพบข้อผิดพลาด 404 ผลลัพธ์ที่คาดหวังคือ index.html ของโครงการ GitHub ที่กล่าวถึงข้างต้น
Score: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 คือ /_synapse/ผู้ดูแลระบบ. ดังนั้น nginx จึงพยายามให้บริการ /var/www/html/_synapse/admin เพื่อตอบสนองต่อการร้องขอ เนื่องจากไม่มีไดเร็กทอรีดังกล่าว nginx จึงส่งการตอบกลับ 404

ถ้าคุณต้องการ https://matrix.example.tld/_synapse/admin เพื่อให้บริการไฟล์ใน /var/www/htmlคุณต้องเปลี่ยนการกำหนดค่าพร็อกซีย้อนกลับดังนี้:

ตำแหน่ง /_synapse/ผู้ดูแลระบบ {
    proxy_pass http://SRV_IP/;
    proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
}

สิ่งนี้บอกให้ nginx แทนที่ URI ในไฟล์ ที่ตั้ง เป็นส่วนหนึ่งกับ /.

ru flag
คำตอบที่ยอดเยี่ยม! ฉันอ่านเอกสารประกอบของ nginx แล้ว แต่ยังไม่ชัดเจนว่าการส่งต่อทั้งหมดนั้นทำงานอย่างไร ขอบคุณอีกครั้ง

โพสต์คำตอบ

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