Score:1

ย้อนกลับพร็อกซีใน Apache + CentOS สำหรับคำขอ HTTPS ไปยังเว็บเซิร์ฟเวอร์ PostgREST

ธง gs

ฉันต้องการส่งคำขอ https ไปยังเว็บเซิร์ฟเวอร์ postgREST ซึ่งโดยการออกแบบไม่รองรับ https ฉันใช้เวลาหลายวันตอนนี้ฉันไม่รู้อีกต่อไป ...

การตั้งค่าของฉัน

  • เซิร์ฟเวอร์ของฉันทำงานบน CentOS 7.9.2009
  • ฉันมีโดเมนเว็บไซต์ที่ใช้ Wordpress เพื่อให้บริการเนื้อหาของฉัน หน้าแรก/myuser/public_html
  • ฉันตั้งค่า PostgREST 7.0.1 บนเซิร์ฟเวอร์ของฉันซึ่งทำงานบนพอร์ต 3000
  • ฉันใช้ Apache/2.4.51 (cPanel)

ปัญหาของฉัน

  • คำขอต่อไปนี้ใช้ได้ดี: http://my-domain.com:3000/my_db_table
  • ฉันต้องการเรียกใช้คำขอเดียวกันเช่น: https://my-domain.com/api/my_db_table
  • การกำหนดค่า Apache ของฉันอยู่ในไฟล์ "รวม" ดูเหมือนจะถูกโหลด (เนื่องจากข้อผิดพลาดเกิดขึ้นเมื่อฉันใส่ไวยากรณ์ผิดโดยเจตนาในไฟล์นี้) และมีลักษณะดังนี้:
<VirtualHost *:443>

    DocumentRoot /
    ServerName my-domain.com
    ServerAlias my-domain
    ErrorLog /home/myuser/public_html/api/error.log
    CustomLog /home/myuser/public_html/api/access.log combined

    SSLEngine on
    SSLUseStapling off
    SSLCertificateFile /etc/ssl/certs/server.my-domain.com.crt
    SSLCertificateKeyFile /etc/ssl/private/server.my-domain.com.key


    <Location /api/ >
         ProxyPreserveHost On
         ProxyPass http://localhost:3000/
         ProxyPassReverse http://localhost:3000/
         RequestHeader set X-Forwarded-Port "443"
         RequestHeader set X-Forwarded-Proto "https"
   </Location>
</VirtualHost>
  • วิ่ง httpd -t ผลตอบแทน ไวยากรณ์ตกลง
  • หลังจากการเปลี่ยนแปลงของฉัน ฉันเรียกใช้ sudo systemctl รีสตาร์ท httpd
  • เมื่อฉันพยายามทำตามคำขอเช่น curl -i https://my-domain.com/api/my_db_table ฉันถูกนำไปที่หน้า 404 ของเว็บไซต์ Wordpress ของฉัน
  • เดอะ บันทึกข้อผิดพลาด ไฟล์ของการกำหนดค่า apache ของฉันไม่มีข้อผิดพลาดใด ๆ (รวมข้อผิดพลาดสำหรับการเย็บเล่มซึ่งฉันแก้ไขโดยเพิ่มบรรทัด SSLUseStapling ปิด ในการกำหนดค่าของฉัน)

ฉันไม่รู้จะทำอย่างไรอีกต่อไป และเนื่องจากฉันไม่มีบันทึกข้อผิดพลาด ฉันไม่รู้ด้วยซ้ำว่าจะเริ่มแก้ไขข้อบกพร่องอย่างไร ฉันยินดีที่จะบอกใบ้ใด ๆ ที่ใครบางคนสามารถให้ฉันได้

Score:0
ธง ru

บวกกับจุดที่สองของ คำตอบที่ได้รับจาก shearn89ให้ตรวจสอบว่าโมดูล mod_proxy_http ติดตั้งอยู่ด้วย (ใช้ a2enmod proxy_http เพื่อติดตั้ง)

Score:0
ธง cn

บางสิ่งที่ต้องตรวจสอบ:

  1. SELinux ทำงานอยู่หรือไม่ ถ้าเป็นเช่นนั้น SEBoolean httpd_can_network_connect ตั้งเป็น 1?
  2. เป็น mod_proxy ติดตั้ง?
  3. เป็นอะไรก็ได้บน VirtualHost ที่ไม่ใช่พร็อกซีโดยใช้เส้นทาง /api? ใน, มันจะบล็อกการโทรไปยัง ที่ตั้ง? คำตอบที่ดีกว่า: วิธีจัดการ URL ที่เกี่ยวข้องอย่างถูกต้องด้วย reverse proxy

ไม่ใช่ผู้เชี่ยวชาญ apache แต่สิ่งเหล่านี้ผุดขึ้นในใจ!

JoeBe avatar
gs flag
ขอบคุณสำหรับการตอบกลับของคุณ. อย่างไรก็ตาม เราอาจปฏิเสธคำแนะนำของคุณได้ (1) ไม่ มันถูกปิดใช้งาน (2) การเรียกใช้ `httpd -M` แสดงให้ฉันเห็น `proxy_module` ดังนั้นดูเหมือนว่าจะเปิดใช้งาน (3) ฉันเพิ่งสร้างไดเร็กทอรี `/api` ในสภาพแวดล้อม wordpress ของฉันใน `home/myuser/public_html` ดังนั้นจึงไม่ควรมีอะไรนอกจากพร็อกซีนี้

โพสต์คำตอบ

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