Score:0

การสื่อสารซ็อกเก็ต Unix กับ Apache 2.4.51 และ Flask App โดยใช้ Uwsgi ส่งคืน "404 Not Found"

ธง io
Jai

ฉันใช้ Apache ที่ด้านหน้าเป็นเว็บเซิร์ฟเวอร์และเรียกใช้แอปพลิเคชัน python flask ที่ ส่วนหลังและพวกเขาสื่อสารโดยใช้ซ็อกเก็ต Unix ตามที่กล่าวไว้ในลิงค์ด้านล่างสำหรับโมดูล mod_proxy_uwsgi และฉันได้โหลดทั้ง mod_proxy และ mod_proxy_uwsgi ตามที่แนะนำ https://uwsgi-docs.readthedocs.io/en/latest/Apache.html

httpd/bin/apachectl -S
การกำหนดค่า VirtualHost:
*:2020 host-rh7-1 (/home/user/httpd-2.4.51/conf/httpd.conf:156)
*:2022 host-rh7-1 (/home/user/httpd-2.4.51/conf/httpd.conf:169)
*:2021 host-rh7-1 (/home/user/httpd-2.4.51/conf/extra/httpd-ssl.conf:123)
*:2023 host-rh7-1 (/home/user/httpd-2.4.51/conf/extra/httpd-ssl.conf:294)
ServerRoot: "/home/user/httpd-2.4.51"
รูทเอกสารหลัก: "/home/user/web/html"
ErrorLog หลัก: "/home/user/httpd-2.4.51/logs/error_log"
ค่าเริ่มต้นของ Mutex: dir="/home/user/httpd-2.4.51/logs/" mechanism=default
Mutex proxy-balancer-shm: using_defaults
Mutex ssl-เย็บเล่ม-รีเฟรช: using_defaults
Mutex การเย็บ ssl: using_defaults
พร็อกซี Mutex: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "/home/user/httpd-2.4.51/logs/httpd.pid"
กำหนด: DUMP_VHOSTS
กำหนด: DUMP_RUN_CFG
ผู้ใช้: ชื่อ="ผู้ใช้" id=995 not_used
กลุ่ม: name="support" id=1034 not_used

-------------------------------------

httpd.conf
------------
<โฮสต์เสมือน *:2022>
    ProxyPass / unix:/home/user/flask_app/myproject.sock|uwsgi://home/user/flask_app/
</เวอร์ชวลโฮสต์>



uwsgi conf.ini
---------------
[uwsgi]
chdir = /home/user/flask_app
โมดูล = แอพ
มาสเตอร์ = จริง
กระบวนการ = 2
เธรด = 2
ซ็อกเก็ต = myproject.sock
chmod-socket = 660
เปิดใช้งานเธรด = จริง
สุญญากาศ = จริง
ตายตามกำหนด = จริง

มันทำงานได้ดีจนกระทั่งฉันใช้ Apache ด้วย 2.4.48 แต่หลังจากอัปเกรด Apache เป็น 2.4.51 มันหยุดทำงานและฉันไม่เห็นคำขอ http ถึงแอพขวดและมันให้ "404 ไม่พบ" แทน

ฉันรู้ว่ามีช่องโหว่เกี่ยวกับสิ่งนี้ซึ่งระบุ "CVE-2021-40438 เป็นช่องโหว่ Server Side Request Forgery (SSRF) ใน Apache HTTP Server รุ่น 2.4.48 และเก่ากว่า" และ Apache ได้แก้ไขปัญหาช่องโหว่นั้นใน 2.4.51 แต่ฉัน ไม่เข้าใจผลทั้งหมดของการแก้ไขในการกำหนดค่าของฉัน

ข้อมูลเพิ่มเติมอยู่ที่นี่ในลิงค์นี้ https://www.fastly.com/blog/apache-redux-preventing-server-side-request-forgery-via-cve-2021-40438 และการแก้ไขดูเหมือนจะอยู่ในการแก้ไขนี้ https://svn.apache.org/viewvc?view=revision&revision=1892814

มีวิธีอื่นในการเปิดใช้งานการสื่อสารซ็อกเก็ต Unix ใน httpd.conf ในอนาคตหรือไม่ หรือ ฉันต้องใช้ซ็อกเก็ต TCP แทน ?

โปรดทราบว่าฉันรู้ว่าถ้าฉันใช้ซ็อกเก็ต TCP แทนซ็อกเก็ต Unix ดังต่อไปนี้ มันใช้งานได้ดี

httpd.conf
-----------
<โฮสต์เสมือน *:2022>
    ProxyPass / uwsgi://127.0.0.1:2024/
</เวอร์ชวลโฮสต์>



uwsgi conf.ini
--------------
[uwsgi]
chdir = /home/user/flask_app
โมดูล = แอพ
มาสเตอร์ = จริง
กระบวนการ = 2
เธรด = 2
ซ็อกเก็ต = 127.0.0.1:2024
เปิดใช้งานเธรด = จริง
สุญญากาศ = จริง
ตายตามกำหนด = จริง
Score:0
ธง io
Jai

หลังจากดูตัวอย่างเพิ่มเติมแล้ว ฉันเพิ่งลองใช้เวอร์ชันอื่นของการเข้ารหัสบรรทัด ProxyPass ดังต่อไปนี้ และได้ผลสำหรับฉัน:

httpd.conf
------------
<โฮสต์เสมือน *:2022>
    ProxyPass / unix:/home/user/flask_app/myproject.sock|uwsgi://localhost/
</เวอร์ชวลโฮสต์>

โพสต์คำตอบ

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