Score:1

ข้อผิดพลาด Apache 500 เมื่อพร็อกซีไดเร็กทอรีย่อย API

ธง au

ฉันพยายามเปลี่ยนเส้นทางคำขอ PUT สำหรับปลายทางเฉพาะไปยังโฮสต์อื่น

จุดสิ้นสุดดังกล่าวอยู่ภายใต้ /ภายใน และยอมรับเฉพาะคำขอ PUT จุดสิ้นสุดอื่น ๆ ภายใต้ /ภายใน จะยังคงให้บริการโดยโฮสต์/เซิร์ฟเวอร์หลักของฉันต่อไป

ฉันได้ลองตั้งค่าโดยใช้ทั้งกฎการเขียนซ้ำและใช้พร็อกซี ([พ]) แฟล็กและการใช้ พร็อกซีพาส คำสั่ง - ทั้งหมดส่งผลให้เกิด 500 Internal Server Error และคำขอไม่เคยส่งไปยังโฮสต์ใหม่

แอปพลิเคชันไคลเอนต์ของฉันใช้ไคลเอนต์ REST อย่างง่ายที่ไม่สามารถจัดการการเปลี่ยนเส้นทางได้ ดังนั้นฉันจึงต้องใช้พร็อกซีบางประเภท

บันทึก Apache แสดงดังต่อไปนี้

[พฤ. 10 ก.พ. 08:56:20.394444 2022] [rewrite:trace1] [pid 8579] mod_rewrite.c(480): [client XXX.XXX.XXX.XXX:XXXXXX] XXX.XXX.XXX.XXX - - [subdomain1 .mydomain.com/sid#55d4ed07ecb0][rid#55d4ed2c5f20/initial] ดำเนินการต่อด้วยพร็อกซีคำขอพร็อกซี: https://subdomain2.mydomain.com/internal/my-endpoint [ตกลง]

นี่คือการกำหนดค่าปัจจุบันสำหรับ vhost เฉพาะ

<VirtualHost *:80>
 ServerName subdomain1.mydomain.com
  ProxyPass /soap ajp://localhost:7007/soap retry=3
  ProxyPreserveHost On
  Redirect /  https://subdomain1.mydomain.com/
  ErrorLog /var/log/httpd/subdomain1_error
</VirtualHost>

<VirtualHost *:443>
  ServerName subdomain1.mydomain.com
  Options FollowSymlinks
  ProxyRequests On
  ProxyPreserveHost On
  #RewriteEngine On

  #RewriteCond %{REQUEST_URI} '^/internal/my-endpoint'
  #RewriteCond %{REQUEST_METHOD} ^(PUT)
  #RewriteRule "^/(.*)" "https://subdomain2.mydomain.com/internal/my-endpoint" [P]

  ProxyPass /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint
  ProxyPassReverse /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint
  ProxyPreserveHost On

  LogLevel alert rewrite:trace3
  CustomLog /var/log/httpd/subdomain1_access_log common
  ProxyPass / ajp://localhost:7007/ retry=3
  ProxyPassReverse / ajp://localhost:7007/ retry=3
  ProxyPreserveHost Off
  ErrorLog /var/log/httpd/subdomain1
  SSLEngine on
</VirtualHost>
Score:1
ธง au

ตกลงหลังจากเปิดใช้งานการดีบักในบันทึก apache ปรากฎว่าปัญหาเกี่ยวข้องกับใบรับรอง SSL เนื่องจากการมอบฉันทะไปยังเซิร์ฟเวอร์ที่ยอมรับการเชื่อมต่อ HTTPS เท่านั้น

ต้องอัปเดตการกำหนดค่า apache เป็นค่าด้านล่างเพื่อให้ใช้งานได้

<VirtualHost *:80>
 ServerName subdomain1.mydomain.com
  ProxyPass /soap ajp://localhost:7007/soap retry=3
  ProxyPreserveHost On
  Redirect /  https://subdomain1.mydomain.com/
  ErrorLog /var/log/httpd/subdomain1_error
</VirtualHost>

<VirtualHost *:443>
  ServerName subdomain1.mydomain.com
  Options FollowSymlinks
  ProxyRequests Off
  ProxyErrorOverride off
  ProxyPreserveHost On
######
  SSLEngine on
  SSLProxyEngine on
######

  ProxyPass /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint
  ProxyPassReverse /internal/my-endpoint https://subdomain2.mydomain.com/internal/my-endpoint

  LogLevel alert rewrite:trace3
  CustomLog /var/log/httpd/subdomain1_access_log common
  ProxyPass / ajp://localhost:7007/ retry=3
  ProxyPassReverse / ajp://localhost:7007/ retry=3
  ProxyPreserveHost Off
  ErrorLog /var/log/httpd/subdomain1
  SSLEngine on
</VirtualHost>

โพสต์คำตอบ

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