ฉันได้พัฒนาเว็บแอปพลิเคชันด้วย 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': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว