Score:0

วิธีตั้งค่า Apache เป็นพร็อกซีย้อนกลับไปยังคอนเทนเนอร์นักเทียบท่า

ธง jp

ฉันพยายามตั้งค่าเซิร์ฟเวอร์ Apache เป็นพร็อกซีย้อนกลับสำหรับนักเทียบท่าที่มีอยู่ ไฟเขียว ตัวอย่าง.

ในทางการ เอกสารที่มีการเสนอ เพื่อเรียกใช้ Greenlight ในคอนเทนเนอร์นักเทียบท่าที่มีอินสแตนซ์ Nginx เป็นพร็อกซีย้อนกลับ (ส่วนใหญ่เพื่อให้ง่ายต่อการเรียกใช้ควบคู่ไปกับ บีบีเซิร์ฟเวอร์). ในการตั้งค่าของฉัน แต่ฉันไม่ต้องการเรียกใช้อินสแตนซ์ BBB ของตัวเอง แต่ควรใช้ Greenlight เป็นส่วนหน้าสำหรับเซิร์ฟเวอร์ BBB ภายนอก

แต่เพื่อความสะดวก ฉันตั้งค่า Greenlight ในคอนเทนเนอร์นักเทียบท่า

แต่เนื่องจากเซิร์ฟเวอร์ของฉันมีจุดประสงค์หลายอย่าง (ส่วนใหญ่ใช้เพื่อส่งเว็บไซต์หลายแห่งและจัดหาบัญชีอีเมลที่จัดการโดย ฟรอกซ์เลอร์ แต่มันยังทำงานเป็น เซิร์ฟเวอร์เมทริกซ์) ฉันไม่ต้องการตั้งค่า Nginx เป็นพร็อกซี เพราะนั่นจะบังคับให้ฉันเปลี่ยนการตั้งค่า Apache ที่ใช้งานจริงของ Froxlor ที่มีการจัดการอย่างมาก

ดังนั้นฉันจึงพยายามกำหนดค่า Apache แทนเป็น reverse prox น่าเสียดายที่ในเอกสารนี้เป็นเพียงตัวอย่าง Nginx เท่านั้น:

ที่ตั้ง /b {
  proxy_pass http://127.0.0.1:5000;
  proxy_set_header โฮสต์ $host;
  proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_http_version 1.1;
}

ตำแหน่ง /b/เคเบิล {
  proxy_pass http://127.0.0.1:5000;
  proxy_set_header โฮสต์ $host;
  proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header อัพเกรด $http_upgrade;
  proxy_set_header การเชื่อมต่อ "อัปเกรด";
  proxy_http_version 1.1;
  proxy_read_timeout 6 ชม.;
  proxy_send_timeout 6 ชม.;
  client_body_timeout 6 ชม.;
  send_timeout 6 ชม.;
}

ฉันเชื่อมโยงเพื่อให้สิ่งนี้ใช้งานได้กับ Apache ด้วยการตั้งค่า VirtualHost ต่อไปนี้:

<VirtualHost MYIP:443>
  ServerName greenlight.example.com
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
ProxyPass / http://127.0.0.1:5000
ProxyPassReverse / http://127.0.0.1:5000   
<Location "/cable">
  ProxyPass / http://127.0.0.1:5000 connectiontimeout=6h timeout=6h
  ProxyPassReverse / http://127.0.0.1:5000
</Location>
</VirtualHost>

ฉันเปลี่ยนจากตัวอย่างที่ฉันไม่ต้องการใช้โฟลเดอร์ย่อยเสมือน »b« แต่ต้องการใช้โดเมนย่อย t เปลี่ยนเส้นทางการรับส่งข้อมูลเฉพาะไปยังพอร์ตในเครื่อง 5000. น่าเสียดายที่มันใช้งานไม่ได้ เซิร์ฟเวอร์ส่งคืน

ข้อผิดพลาด 502 Prox

ข้อผิดพลาดพร็อกซี

พร็อกซีเซิร์ฟเวอร์ได้รับการตอบสนองที่ไม่ถูกต้องจากเซิร์ฟเวอร์อัปสตรีม
พร็อกซีเซิร์ฟเวอร์ไม่สามารถจัดการคำขอได้

สาเหตุ: เกิดข้อผิดพลาดในการอ่านจากเซิร์ฟเวอร์ระยะไกล

ใครช่วยอธิบายให้ฉันฟังหน่อยว่าอะไรคือสาเหตุของข้อผิดพลาดนี้ จะแปลการตั้งค่า Nginx Header เป็น Apache และการตั้งค่าการหมดเวลาอื่น ๆ ได้อย่างไร และจำเป็นหรือไม่

drookie avatar
za flag
โดยพื้นฐานแล้วคุณกำลังพยายามทำในสิ่งที่ตรงกันข้ามกับที่อุตสาหกรรมกำลังทำอยู่ในปัจจุบัน ตลกขบขัน.
jp flag
@drookie คุณหมายถึงการเปลี่ยนสำหรับ Nginx เป็น Apache? ไม่ ฉันไม่ใช่ ฉันแค่ต้องการติดตั้ง Greenlight บนเซิร์ฟเวอร์ที่เรียกใช้สิ่งอื่นๆ อีกมากมายด้วย Apache และมันไม่สมเหตุสมผลเลยที่จะกำหนดค่าแอปพลิเคชันโหลใหม่ เพราะ “อุตสาหกรรม” คิดว่า Nginx นั้นเย็นกว่า
djdomi avatar
za flag
ไม่คุณไม่ได้จุด คุณควรใช้ nginx เป็นแคชและเรียกใช้แอพบน apache นั่นคือประเด็นที่เขาอยากจะบอก ดังนั้นบอกปัญหาดั้งเดิมเพราะคุณมีปัญหา [x และ y](https://faq-database.de/doku.php?id=th:x-and-y-problem)
jp flag
@djdomi ขอบคุณสำหรับความคิดเห็น บางทีคุณอาจพูดถูก ฉันเปลี่ยนคำถามโดยพยายามให้ข้อมูลพื้นฐานเพิ่มเติม ฉันไม่ต้องการที่จะเจาะจงเกินไปในตอนแรกâ¦
Score:2
ธง in

มีปัญหาเล็กน้อยที่นี่:

  1. คำสั่ง
    เส้นทางแรกที่ตรงกันจะชนะ คุณวางไว้ / ก่อน /เคเบิ้ล, ดังนั้น / จะจับคู่เสมอและ /เคเบิ้ล จะไม่ถูกใช้
  2. จับคู่เครื่องหมายทับท้าย
    หากคุณสิ้นสุดพารามิเตอร์ตัวแรกของ พร็อกซีพาส กับ / คุณต้องเพิ่มหนึ่งในสองและในทางกลับกัน มิฉะนั้น คุณจะพบ URL ที่ใช้งานไม่ได้ซึ่งถูกส่งไปยังแบ็กเอนด์
  3. ProxyPass ภายใน <Location> บล็อก
    ถ้าคุณใช้ พร็อกซีพาส ภายใน <Location> จะได้รับพารามิเตอร์ที่สองเท่านั้น อันดับแรกจะถูกแทนที่ด้วย <Location>.

ตัวอย่าง:

<VirtualHost MYIP:443>
    ServerName greenlight.example.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia On
    ProxyPass /cable http://127.0.0.1:5000 connectiontimeout=6h timeout=6h
    ProxyPassReverse /cable http://127.0.0.1:5000
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
</VirtualHost>

สุดท้าย แต่ไม่ท้ายสุด ขณะนี้คุณกำลังพร็อกซีสถานที่ทั้งสองไปยัง URL แบ็กเอนด์เดียวกัน ซึ่งมักจะผิด

โพสต์คำตอบ

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