ฉันกำลังพยายามตั้งค่าพร็อกซีย้อนกลับไปยังคอนเทนเนอร์นักเทียบท่าโดยใช้ nginx
คอนเทนเนอร์นักเทียบท่าพร้อมใช้งานและทำงานบนพอร์ต 8000
ฉันต้องการเข้าถึงคอนเทนเนอร์ผ่านที่อยู่ mydomain.com:80/mycontainer
พร็อกซีย้อนกลับดูเหมือนจะประสบความสำเร็จในการพูดคุยกับคอนเทนเนอร์ แต่เมื่อคอนเทนเนอร์ขอเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ nginx พยายามโหลดหน้าเข้าสู่ระบบบนพอร์ต 80 แทนที่จะเป็น 8000 ซึ่งล้มเหลว
นี่คือการกำหนดค่า nginx ของฉันจนถึงตอนนี้:
คอนเทนเนอร์นักเทียบท่าต้นน้ำ {
เซิร์ฟเวอร์ 127.0.0.1:8000;
}
เซิร์ฟเวอร์ {
ฟัง 80;
ที่ตั้ง / คอนเทนเนอร์ของฉัน {
ปิด proxy_redirect;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัพเกรด";
proxy_pass http://docker-คอนเทนเนอร์;
}
}
นี่คือสิ่งที่ฉันได้รับเมื่อฉันวิ่ง wget -S 127.0.0.1/mycontainer
:
wget -S 127.0.0.1/mycontainer
--2021-08-29 20:30:12-- http://127.0.0.1/mycontainer
กำลังเชื่อมต่อกับ 127.0.0.1:80... กำลังเชื่อมต่อ
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ...
พบ HTTP/1.1 302
เซิร์ฟเวอร์: nginx/1.18.0 (Ubuntu)
วันที่: อา. 29 ส.ค. 2564 20:30:12 GMT
ประเภทเนื้อหา: ข้อความ/ธรรมดา; ชุดอักขระ=utf-8
ความยาวเนื้อหา: 28
การเชื่อมต่อ: มีชีวิตอยู่
ภาษาเนื้อหา: en
ตัวเลือก X-Frame: SAMEORIGIN
X-ดาวน์โหลด-ตัวเลือก: ไม่เปิด
X-Content-Type-Options: ไร้สาระ
นโยบายผู้อ้างอิง: ต้นทาง-เมื่อ-ข้ามต้นทาง
X-XSS-การป้องกัน: 1; โหมด = บล็อก
ที่ตั้ง: /เข้าสู่ระบบ
วารี: ยอมรับ
Set-Cookie: คุกกี้บางตัว
สถานที่: /เข้าสู่ระบบ [กำลังติดตาม]
--2021-08-29 20:30:12-- http://127.0.0.1/login <--- นี่คือปัญหา ควรเป็น 127.0.0.1:8000/login
ใช้การเชื่อมต่อที่มีอยู่ซ้ำกับ 127.0.0.1:80
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ...
ไม่พบ HTTP/1.1 404
เซิร์ฟเวอร์: nginx/1.18.0 (Ubuntu)
วันที่: อา. 29 ส.ค. 2564 20:30:12 GMT
ประเภทเนื้อหา: text/html
ความยาวเนื้อหา: 162
การเชื่อมต่อ: มีชีวิตอยู่
2021-08-29 20:30:12 ข้อผิดพลาด 404: ไม่พบ
ฉันไม่ได้เป็นมืออาชีพในด้านนี้ ดังนั้นฉันแน่ใจว่ามีข้อผิดพลาดมากมาย
ฉันจะทำให้การเปลี่ยนเส้นทางอัตโนมัติชี้ไปที่พอร์ตที่ถูกต้อง (8000) และไม่ใช่พอร์ต 80 ได้อย่างไร