Score:0

ข้อผิดพลาด 502: ปรับใช้แอปพลิเคชัน Django กับ Gunicorn และ Nginx

ธง ar

ฉันได้พัฒนาเว็บแอปพลิเคชันด้วย Django และฉันกำลังพยายามเผยแพร่ในเครื่องเสมือนที่สร้างด้วย Azure ในการทำเช่นนั้นฉันใช้ซอฟต์แวร์สแต็กต่อไปนี้:

  • อูบุนตู (20.04)
  • จังโก้ (3.0.7)
  • Virtualenv (20.0.17)
  • กุนนิคอร์น (20.1.0)
  • งินซ์ (1.18.0)

ในการปรับใช้แอป ฉันทำตามคำแนะนำนั้น: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04

โฟลเดอร์โปรเจ็กต์ django ของฉันถูกจัดระเบียบดังนี้:

บ้าน/
ââ useradmin/
â ââ โครงการของฉัน/
â â ââ โครงการ/
â â â ââ settings.py
â â â ââ url.py
â â â ââ wsgi.py
â â â ââ ...
â â ââ คงที่/
â â ââ แม่แบบ/
â â ââ เวนวี/
â â ââ Manage.py
â â ââ ...

นี่เป็นของฉัน /etc/systemd/system/gunicorn.service:

[หน่วย]
Description=กูนิคอร์นภูต
หลังจาก = network.target

[บริการ]
ผู้ใช้ = ผู้ดูแลระบบ
Group=www-ข้อมูล
WorkingDirectory=/home/useradmin/myproject
ExecStart=/home/useradmin/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/useradmin/myproject/myproject.sock proj.wsgi:application
[ติดตั้ง]
WantedBy=multi-user.target

นี่เป็นของฉัน /etc/nginx/sites-available/myproject:

เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name mydomain.com;

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง / คงที่ / {
        รูท /home/useradmin/myproject;
    }

    ที่ตั้ง / {
        รวม proxy_params;
        proxy_pass http://unix:/home/useradmin/myproject/myproject.sock;
    }
}

เมื่อฉันไปที่ mydomain.com ฉันได้รับข้อผิดพลาด 502 Bad Gateway หากฉันตรวจสอบบันทึก Nginx โดยเรียกใช้ "sudo tail -F /var/log/nginx/error.log" ฉันเห็นข้อผิดพลาดต่อไปนี้:

2022/03/16 08:27:33 [crit] 64480#64480: *3 connect() to unix:/home/useradmin/myproject/myproject.sock ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) ขณะเชื่อมต่อกับอัปสตรีม ลูกค้า: XX.XX.XX.XX, เซิร์ฟเวอร์: mydomain.com, คำขอ: "GET / HTTP/1.1", อัปสตรีม: "http://unix:/home/useradmin/myproject/myproject.sock:/", โฮสต์ : "mydomain.com"

ในการสร้างไฟล์ถุงเท้า ฉันทำตามคำแนะนำต่อไปนี้ แต่ไม่มีอะไรเปลี่ยนแปลง:

systemctl daemon-โหลดซ้ำ
systemctl รีสตาร์ท gunicorn.service

อัปเดต 1:

กำลังพยายามดำเนินการตามคำสั่ง ls -la /home/useradmin/myproject/myproject.sock ฉันได้รับข้อผิดพลาด ls: ไม่สามารถเข้าถึง '/home/useradmin/myproject/myproject.sock': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

djdomi avatar
za flag
`ls -la /home/useradmin/myproject/myproject.sock` แสดงอะไร และ afaik อาจเป็นปัญหาที่ง่ายกว่า - โปรดลอง http://unix:/home/useradmin/myproject/myproject.sock: ;
El_Merendero avatar
ar flag
มันส่งคืน `ls: ไม่สามารถเข้าถึง '/home/useradmin/myproject/myproject.sock': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
djdomi avatar
za flag
แก้ไขบริการยูนิคอร์นของคุณในครั้งแรกและครั้งที่สอง โปรดอย่าโพสต์ความคิดเห็นพร้อมข้อมูลของคุณ แก้ไขคำถามและเพิ่มข้อมูลที่นั่น
El_Merendero avatar
ar flag
โอเค ขอบคุณมาก ฉันกำลังแก้ไขคำถาม ฉันจะแก้ไขบริการยูนิคอร์นได้อย่างไร
djdomi avatar
za flag
```ExecStart='/home/useradmin/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/useradmin/myproject/myproject.sock proj.wsgi:application' ` `` อาจเป็นปัญหา ... เพราะมันระบุว่า ``` gunicorn: error: argument -b/--bind: คาดว่าจะมีหนึ่งอาร์กิวเมนต์ ``` และคุณให้ 2 อาร์กิวเมนต์ ไม่ใช่หนึ่งอาร์กิวเมนต์ และเครื่องหมายลบที่ฉันไม่เข้าใจว่ามันควรเป็นอย่างไร

โพสต์คำตอบ

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