Score:2

Urls.py ไม่อัปเดตบนเซิร์ฟเวอร์การผลิต Django ซึ่งใช้ nginx และ gunicorn

ธง in

ขณะนี้ฉันกำลังโฮสต์ Django Webapp บนอินสแตนซ์ AWS EC2 หากต้องการเรียกใช้ในโหมดการผลิต ฉันใช้ NGINX และ gunicorn

เดอะ ข้อผิดพลาด ที่ฉันกำลังเผชิญอยู่คือ

เซิร์ฟเวอร์ที่ใช้งานจริงดูเหมือนจะไม่อัปเดต urls.py ไม่ว่าฉันจะทำอะไรก็ตาม

แอพที่ใช้ในการถ่ายโอนไฟล์จากไฟล์ในเครื่องไปยังอินสแตนซ์ : FileZilla

ขั้นตอนที่ฉันได้พยายามแก้ไขปัญหา:

  1. การลบ urls.py และเขียนใหม่

  2. ตรวจสอบว่าไฟล์อื่นปฏิเสธที่จะรับการอัปเดตหรือไม่

    ผลลัพธ์ของขั้นตอนที่ 2: ไฟล์อื่นๆ ได้รับการอัปเดตสำเร็จ ฉันทดสอบด้วยไฟล์แบบคงที่ และด้วย index.html

  3. ตรวจสอบว่าไฟล์ได้รับการอัปเดตในอินสแตนซ์หรือไม่โดยใช้ เดอะ นาโน บรรณาธิการ

    ผลลัพธ์ของขั้นตอนที่ 3: ไฟล์ได้รับการอัปเดตอย่างถูกต้องในอินสแตนซ์ โดยมีการเปลี่ยนแปลงทั้งหมด สะท้อน

  4. เรียกใช้บนอินสแตนซ์โดยใช้ หลาม Manage.py รันเซิร์ฟเวอร์ (เพื่อวัตถุประสงค์ในการพัฒนา), และ พบว่า urls.py ได้รับการอัปเดตอย่างถูกต้องเมื่อใช้ runserver

ข้อมูลอื่น ๆ:

1. ทุกอย่างได้รับการปรับปรุงอย่างถูกต้องเมื่อวานนี้ แต่จู่ๆ มันก็ตัดสินใจทำตัวดื้อรั้น

  1. ฉันได้อัปเดตแพ็คเกจทั้งหมดโดยใช้ ติดตั้ง sudo yum

  2. ฉันรีสตาร์ท nginx และ gunicorn โดยใช้คำสั่งเช่น:

    sudo systemctl เริ่ม gunicorn

    sudo systemctl เปิดใช้งาน gunicorn

    sudo systemctl รีสตาร์ท nginx

  3. ฉันได้ลองตรวจสอบข้อผิดพลาดโดยใช้ sudo nginx -tแต่ไม่มีข้อผิดพลาดปรากฏขึ้น

  4. ฉันได้ตรวจสอบบันทึกข้อผิดพลาดโดยใช้ sudo tail -f /var/log/nginx/error.log แต่ไม่แสดงข้อผิดพลาด
    ขึ้นที่นี่เช่นกัน

ฉันจะแก้ปัญหานี้ได้อย่างไร

ขอขอบคุณ

Michael Hampton avatar
cz flag
แอปพลิเคชันของคุณกำลังเขียนใหม่แบบไดนามิก urls.py? ตรวจสอบที่ [การบันทึก](https://docs.djangoproject.com/en/3.2/topics/logging/) เพื่อหาข้อความที่เกี่ยวข้อง
Madhav avatar
in flag
ฉันขอโทษ แต่นี่เป็นครั้งแรกที่ฉันได้ยินเกี่ยวกับการบันทึก ดังนั้นฉันอาจใช้เวลาพอสมควรกว่าจะเข้าใจวิธีการ 'บันทึก' ดังนั้นการตอบกลับครั้งต่อไปอาจต้องใช้เวลาและขอขอบคุณที่ช่วยฉัน
Madhav avatar
in flag
และเกี่ยวกับการเขียนใหม่แบบไดนามิก urls.py.. ในเซิร์ฟเวอร์ที่ใช้งานจริง ใช่ มันไม่ได้รับการอัปเดตแทนที่จะเขียนใหม่ .... แต่เมื่อฉันโฮสต์โดยใช้ Manage.py runserver ดูเหมือนว่าจะทำงานได้ดีและไฟล์เดียวกัน ถูกนำมาใช้ทั้งในการผลิตและพัฒนา
Michael Hampton avatar
cz flag
คุณสามารถคลิกลิงก์เพื่อดูข้อมูลเกี่ยวกับการบันทึก ค่าเริ่มต้นจะแสดงที่ส่วนท้ายของหน้า หากคุณไม่ได้กำหนดค่าการบันทึก การบันทึกจะถูกส่งไปที่ stdout หรือ stderr และสิ้นสุดใน systemd Journal (เว้นแต่คุณจะกำหนดค่าหน่วยบริการ systemd เพื่อเปลี่ยนเส้นทางเหล่านั้น)
Madhav avatar
in flag
@MichaelHampton ฉันสังเกตเห็นว่า view.py ไม่อัปเดต และสิ่งเดียวที่อัปเดตอย่างถูกต้องคือไฟล์ html และไฟล์คงที่ ตอนนี้ฉันกำลังทำงานกับบันทึก แต่คิดว่า ฉันควรแจ้งข้อสังเกตนี้ให้คุณทราบ เผื่อว่า cld นี้จะบอกคุณเกี่ยวกับปัญหาของฉันมากขึ้น
Madhav avatar
in flag
MIchealllll ฉันแก้ไขได้ ...... ปรากฎว่าฉันต้องรีสตาร์ท gunicorn ของฉันโดยใช้ `sudo systemctl restart gunicorn' ขอบคุณมากที่พยายามช่วยฉัน โดยเฉพาะแนะนำฉันเกี่ยวกับบันทึก
anx avatar
fr flag
anx
คะแนนโบนัสสำหรับการเขียนคำถามที่อ้างถึงปัญหาสำคัญจริง ๆ .. ***restarting** [..] gunicorn โดยใช้ [..] **start** [แทนการรีสตาร์ท]* ;)
Madhav avatar
in flag
ขอบคุณสำหรับการโหวต !!
Score:1
ธง in

ตกลงดังนั้นฉันจึงพบวิธีแก้ปัญหา

ขั้นตอนในการแก้ปัญหา:

  1. ฉันพยายามใช้ python3 Manage.py รันเซิร์ฟเวอร์ ในอินสแตนซ์ของฉัน และพบว่าไฟล์ได้รับการอัปเดตอย่างดี ดังนั้นปัญหาจึงอยู่ที่ฝั่งการผลิต

  2. ฉันพบว่ามีเพียงไฟล์สแตติกและ html เท่านั้นที่ถูกอัปเดต (nginx ให้บริการเหล่านั้น) ดังนั้นปัญหาไม่ได้อยู่ที่สิ่งนั้น

  3. ฉันใช้ gunicorn เพื่อช่วยใน view.py และ urls.py และไฟล์อื่นๆ ดังนั้นปัญหาอาจเกิดจาก gunicorn

ทางออกสุดท้าย:

ดังนั้นฉันจึงรันคำสั่ง sudo systemctl รีสตาร์ท gunicornและรหัสทำงานได้อย่างสมบูรณ์

โพสต์คำตอบ

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