Score:0

แอปพลิเคชัน Tomcat (เซิร์ฟเวอร์ ERDDAP) ที่อยู่เบื้องหลังปัญหาการเปลี่ยนเส้นทางพร็อกซี

ธง nc

ฉันมีอินสแตนซ์ ERDDAP ที่ทำงานบนเซิร์ฟเวอร์ Tomcat ที่อยู่เบื้องหลังพร็อกซีย้อนกลับ NGINX สภาพแวดล้อมทั้งหมดอยู่บน Kubernetes โดย RP เป็นตัวควบคุมขาเข้า NGINX ที่ส่งต่อคำขอบนพอร์ต 443 ไปยังอินสแตนซ์บริการบนพอร์ต 8080 ที่เชื่อมโยงกับคอนเทนเนอร์ที่ Tomcat (และอินสแตนซ์ ERDDAP) ทำงาน

ฉันพบบทช่วยสอนนี้ (https://www.n0r1sk.com/post/nginx-reverse-proxy-with-ssl-offloading-and-apache-tomcat-backends/) ที่แสดงวิธีกำหนดค่า server.xml สำหรับ Tomcat หลัง reverse proxy ดังนั้น HTTP Connector สำหรับเซิร์ฟเวอร์ Tomcat ของฉันคือ:

<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
       proxyPort="443"
       relaxedPathChars='[]|'
       relaxedQueryChars='[]:|{}^&#x5c;&#x60;&quot;&lt;&gt;' />

ด้วยการกำหนดค่านี้ เมื่อฉันขอ URL https://erddap.ve.ismar.cnr.it/erddap:

 รับ /erddap/ HTTP/1.1
 โฮสต์: erddap.ve.ismar.cnr.it
 X-Request-ID: 484e514b4038614090bf34061e9287f3
 X-Real-IP: 10.104.235.192
 X-ส่งต่อ-สำหรับ: 10.104.235.192
 X-ส่งต่อโฮสต์: erddap.ve.ismar.cnr.it
 X-Forwarded-Port: 443
 X-ส่งต่อโปรโต: https
 X-Scheme: https
 ...

ฉันได้รับคำตอบต่อไปนี้:

HTTP/1.1 302 
เข้มงวด-การขนส่ง-ความปลอดภัย: max-age=0
ตัวเลือก X-Frame: SAMEORIGIN
X-Content-Type-Options: ไร้สาระ
X-XSS-การป้องกัน: 1; โหมด = บล็อก
แตกต่างกัน: แหล่งกำเนิด
Access-Control-Allow-Credentials: จริง
Access-Control-Expose-Headers: Access-Control-Allow-Origin,Access-Control-Allow- 
ข้อมูลรับรอง
ที่ตั้ง: https://erddap.ve.ismar.cnr.it/erddap/index.html
ความยาวเนื้อหา: 0
วันที่: พฤ. 24 ก.พ. 2565 17:55:41 GMT
เซิร์ฟเวอร์: อาปาเช่

และทุกอย่างทำงานได้ดีกับการส่งต่อพร็อกซีและการตอบกลับ Tomcat แบ็กเอนด์

แต่ถ้าฉันเพิ่มการกำหนดค่าตัวเชื่อมต่อ Tomcat เป็นพารามิเตอร์ scheme="https" ตามที่แนะนำในบทช่วยสอนที่กล่าวถึงข้างต้น:

<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
       proxyPort="443"
       scheme="https"
       relaxedPathChars='[]|'
       relaxedQueryChars='[]:|{}^&#x5c;&#x60;&quot;&lt;&gt;' />

คำขอเดียวกันนี้ล้มเหลวและฉันได้รับคำตอบต่อไปนี้จาก Tomcat:

HTTP/1.1 302 
เข้มงวด-การขนส่ง-ความปลอดภัย: max-age=0
ตัวเลือก X-Frame: SAMEORIGIN
X-Content-Type-Options: ไร้สาระ
X-XSS-การป้องกัน: 1; โหมด = บล็อก
แตกต่างกัน: แหล่งกำเนิด
Access-Control-Allow-Credentials: จริง
Access-Control-Expose-Headers: Access-Control-Allow-Origin,Access-Control-Allow- 
ข้อมูลรับรอง
ตำแหน่ง: (ไม่ระบุ)/erddap/index.html
ความยาวเนื้อหา: 0
วันที่: พฤ. 24 ก.พ. 2565 18:02:44 GMT
เซิร์ฟเวอร์: อาปาเช่

คุณสามารถสังเกตว่าส่วนหัว "ตำแหน่งที่ตั้ง:" ผิดกับคำนำหน้า "(ไม่ระบุ)" โดยสิ้นเชิง และทำให้ไคลเอ็นต์ส่งคำขอ URL ตามมา https://erddap.ve.ismar.cnr.it/erddap/(not%20specified)/erddap/index.html (และแน่นอนว่าคำขอล้มเหลว)

ทุกคนสามารถช่วยฉันระบุจุดที่อาจเป็นปัญหาในการกำหนดค่า Tomcat ของฉันได้ไหม เหตุใดพฤติกรรมจึงแตกต่างกันเพียงแค่เพิ่มพารามิเตอร์ scheme="https" ใน server.xml

ขอบคุณมากล่วงหน้า ปิแอร์เปาโล

Score:0
ธง in

การกำหนดค่าตัวเชื่อมต่อ Tomcat ของคุณไม่มีข้อมูลพร็อกซี

คุณลักษณะที่เกี่ยวข้องคือ ชื่อผู้รับมอบฉันทะ และ พร็อกซีพอร์ต

ตัวอย่าง:

<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1" 
   connectionTimeout="20000"
   proxyName="example.com"
   proxyPort="443"
   scheme="https"
   relaxedPathChars='[]|'
   relaxedQueryChars='[]:|{}^&#x5c;&#x60;&quot;&lt;&gt;' />
nc flag
สวัสดีเจอรัลด์ ขอบคุณสำหรับคำตอบด่วน! เครื่องมือเชื่อมต่อของฉันมีข้อมูลพร็อกซีบางอย่าง proxyPort ถูกตั้งค่าเป็น 443 ฉันต้องเพิ่ม proxyName="erddap.ve.ismar.cnr.it" ด้วยหรือไม่
in flag
ใช่นั่นคือประเด็น
nc flag
น่าเสียดายที่มันใช้งานไม่ได้ ฉันเพิ่มเพียงบรรทัด proxyName="erddap.ve.ismar.cnr.it" บนตัวเชื่อมต่อ Tomcat แต่เซิร์ฟเวอร์ยังคงตอบกลับด้วยคำนำหน้า "(ไม่ได้ระบุ)" `

โพสต์คำตอบ

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