Score:0

พร็อกซี่คำขอทั้งหมดไปยังเซิร์ฟเวอร์ส่วนหลัง

ธง cn

ขณะนี้ฉันมีแอปเชิงมุมที่รับข้อมูลจากแบ็กเอนด์ Symfony เมื่อพัฒนาฉันใช้ เสิร์ฟ พัฒนาระบบพร็อกซี่เซิร์ฟเวอร์สำหรับเปลี่ยนเส้นทาง /api, /oauth-โทเค็น และ /สื่อ กำหนดเส้นทางไปยังเซิร์ฟเวอร์ส่วนหลังและใช้งานได้ดี

ตอนนี้ฉันต้องการปรับใช้แอปกับเว็บเซิร์ฟเวอร์ ฉันตั้งค่าเซิร์ฟเวอร์ Nginx ที่ให้บริการไฟล์สแตติกที่สร้างโดยแอป Angular ที่สร้างขึ้น เนื่องจากเซิร์ฟเวอร์การพัฒนาไม่ได้อยู่ที่นั่นเพื่อพร็อกซีคำขออีกต่อไป ฉันต้องทำสิ่งนี้ผ่านไฟล์ conf ของ Nginx เพื่อให้ฉันมีพร็อกซีย้อนกลับที่ใช้งานได้

สิ่งที่ฉันต้องการก็คือถ้าฉันขอบางอย่างเช่น รับ http://localhost/api/products/1คำขอนี้ได้รับมอบฉันทะ รับ http://localhost:81/api/products/1. สิ่งนี้ควรเหมือนกันสำหรับวิธีการร้องขออื่นๆ ทั้งหมด: POST, PUT, PATCH เป็นต้น

ปัญหาคือฉันไม่สามารถเขียนไฟล์ conf ที่เหมาะกับความต้องการของฉันสำหรับกรณีการใช้งานนี้ได้ สิ่งที่ดีที่สุดที่ฉันได้รับคือการตอบสนอง 302 หรือ 405

นี่คือไฟล์ conf ที่ฉันมี:

เซิร์ฟเวอร์ {
    server_name localhost;
    รูท /var/www/webapp;

    ที่ตั้ง / {
        try_files $uri $uri/ /index.html;
    }

    ตำแหน่ง ~ ^/(?:oauth-token|api|media)/ {
        proxy_pass http://localhost:81;
    }
}

แบ็กเอนด์โฮสต์บนเซิร์ฟเวอร์เดียวกันและอินสแตนซ์ของ nginx มากกว่าส่วนหน้า แต่อยู่ในพอร์ตอื่น (พอร์ต 81 แทน 80)

ฉันพยายามแยกบล็อกตำแหน่งของฉันออกเป็น 3 บล็อกแยกกันสำหรับแต่ละเส้นทาง ในกรณีที่ regex หรือ proxy pass ของฉันผิด แต่ฉันได้รับผลลัพธ์เดียวกัน:

    ตำแหน่ง /api/ {
        proxy_pass http://localhost:81/api/;
    }

    ตำแหน่ง /oauth-โทเค็น/ {
        proxy_pass http://localhost:81/oauth-token/;
    }

ฉันยังพยายามลบเครื่องหมายทับท้าย URL พร็อกซีพาสเพื่อดูว่าเป็นปัญหาหรือไม่ แต่ไม่มีประโยชน์

ฉันพยายามทำตามคำแนะนำที่พบในโพสต์อื่นๆ เกี่ยวกับ Server Fault แต่น่าเศร้าที่ไม่มีใครทำงานให้ฉัน

คุณช่วยฉันกำหนดค่าไฟล์นี้เพื่อให้คำขอ API เหล่านี้ได้รับพร็อกซีไปยังเซิร์ฟเวอร์ส่วนหลังของฉันได้ไหม ขอบคุณ.

Michael Hampton avatar
cz flag
ข้อมูลโค้ดการกำหนดค่า _first_ ของคุณเป็นข้อมูลโค้ดที่ดีและคุณควรใช้เป็นบรรทัดฐานในการแก้ปัญหา และละทิ้งการกำหนดค่าอื่น ที่กล่าวว่าคุณต้องระบุข้อผิดพลาดที่คุณได้รับด้วย จำลองปัญหาอีกครั้ง จากนั้นดูในบันทึกข้อผิดพลาด nginx
cn flag
ปัญหาคือบันทึกข้อผิดพลาดไม่ได้บอกอะไรเลย ฉันมีเพียงข้อความ `การปิดระบบอย่างงดงาม' ที่ฉันได้รับเมื่อรีสตาร์ท nginx docker ดังนั้นไฟล์ conf ของฉันจึงได้รับการโหลดใหม่ นั่นเป็นเหตุผลว่าทำไมฉันค่อนข้างนิ่งงัน บันทึกการเข้าถึงจะแสดงรหัสตอบกลับ 302 และ 405 เดียวกันกับที่ฉันเคยเขียนไว้ก่อนหน้านี้
Michael Hampton avatar
cz flag
จากนั้นปัญหาเกิดขึ้นกับใบสมัครของคุณ และคุณต้องดูที่นั่น

โพสต์คำตอบ

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