ฉันพยายามให้บริการ Scriptcase ที่ทำงานบนพอร์ต 8091 ผ่าน Nginx เป็นพร็อกซีย้อนกลับ ฉันคิดว่าฉันเข้าใจผิดว่าอะไรควร proxy_pass
ทำเพราะทุกสิ่งที่ฉันทำจนถึงตอนนี้ไม่ได้ผล
สิ่งที่ใกล้เคียงที่สุดที่ฉันไปถึงเป้าหมายคือหน้าเข้าสู่ระบบแอป Scriptcase ที่พิการ นี่คือการตั้งค่า:
...
ตำแหน่ง /scd {
ปิด proxy_redirect;
proxy_set_header โฮสต์ $host;
proxy_pass http://127.0.0.1:8091/scriptcase/devel/iface/login.php;
}
...
เท่าที่ฉันรู้ หลังจากเข้าสู่ระบบ หากหน้าที่นำเสนอไม่ได้พิการ ไฟล์ PHP ที่เข้าถึงจะเป็น index.php
. แต่ทั้งหมดที่ฉันได้รับคือหน้าเข้าสู่ระบบที่พิการซึ่งฉันไม่สามารถใช้เพื่อดำเนินการตามขั้นตอนการเข้าสู่ระบบได้
ที่ผมเข้าใจและคาดหวังก็คือ proxy_pass
จะเพียงแค่มอบหมายคำขอ ดังนั้นหากฉันต้องการเข้าถึงแอปพลิเคชัน Scriptcase ฉันจะติดต่อผ่าน https://myserver.com/scd
และฉันจะไม่เห็นการเปลี่ยนแปลงใดๆ ใน URL ในแถบที่อยู่
นอกจากนี้ในหน้าคนพิการ ฉันเห็น: คุณใช้สิทธิ์ในการเชื่อมต่อถึงขีดจำกัดแล้ว โปรดเลือกเซสชันที่คุณต้องการยกเลิกการเชื่อมต่อเพื่อเข้าสู่ระบบ
แก้ไข:
ฉันจัดการเพื่อให้บริการแอปบนรูทด้วย /scd
,ไม่ได้ตั้งใจแต่ก็พอรับได้. สิ่งที่ฉันต้องทำมีดังต่อไปนี้:
ตำแหน่ง /scd {
เขียนใหม่ /scd(.*) /$1 ตัวแบ่ง;
proxy_pass http://127.0.0.1:8091;
proxy_redirect ~^(/.*) https://myserver.com/scd$1;
}
ปัญหาหนึ่งเกิดจากการตั้งค่านี้ ตอนนี้ฉันใช้ไม่ได้ ตำแหน่ง ~ .php$
เพื่อประมวลผลไฟล์ PHP ในไดเรกทอรีรากปกติสำหรับแอปพลิเคชันอื่น