ฉันกำลังทำตามการสอนขวดแก้วของ Corey Schafer
ฉันกำลังพยายามปรับใช้กับเซิร์ฟเวอร์ Linux แต่ไม่สามารถใช้งาน nginx ได้
นี่คือคำสั่งที่ฉันใช้ไปแล้ว:
sudo apt ติดตั้ง nginx
pip ติดตั้ง gunicorn
sudo rm /etc/nginx/sites-enabled/default
ฉันได้ลองสร้างและแก้ไขไฟล์ใหม่แล้ว:
sudo nano /etc/nginx/sites-enabled/flaskblog
นี่คือสิ่งที่ฉันป้อนลงในไฟล์นั้น:
เซิร์ฟเวอร์ {
ฟัง 80;
server_name DOMAIN_IP;
ตำแหน่ง / คงที่ {
นามแฝง /Users/myname/VScode/Flask_Blog/flaskblog/static;
}
ที่ตั้ง / {
proxy_pass http://localhost:8000;
รวม /etc/nginx/proxy_params;
ปิด proxy_redirect;
}
}
จากนั้นฉันก็วิ่ง
sudo nano ufw อนุญาต http/tcp
sudo ufw ลบอนุญาต 5,000
sudo ufw เปิดใช้งาน
จากนั้นเมื่อฉันพยายามรีสตาร์ท nginx ฉันพบข้อผิดพลาด
sudo systemctl รีสตาร์ท nginx
ผลิต
งานสำหรับ nginx.service ล้มเหลวเนื่องจากกระบวนการควบคุมออกโดยมีรหัสข้อผิดพลาด
ดู "สถานะ systemctl nginx.service" และ "journalctl -xeu nginx.service" สำหรับรายละเอียด
สถานะ systemctl nginx.service
ผลิต:
nginx.service - เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/nginx.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่วันอังคารที่ 2022-05-31 06:33:22 UTC; 4 นาที 6 วินาทีที่แล้ว
เอกสาร: man:nginx(8)
กระบวนการ: 62279 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/SUCC>
กระบวนการ: 62280 ExecStart=/usr/sbin/nginx -g daemon on; master_process บน; (รหัส=ออก, สถานะ=1/ล้มเหลว)
sudo systemctl สถานะ nginx
ผลิต:
nginx.service - เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/nginx.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่วันพุธที่ 2022-06-01 09:41:07 UTC; 2 นาที 5 วินาทีที่แล้ว
เอกสาร: man:nginx(8)
กระบวนการ: 66304 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process บน; (รหัส=ออก, สถานะ=1/ล้มเหลว)
ซีพียู: 11ms
Jun 01 09:41:07 flask-server systemd[1]: การเริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์แบบย้อนกลับ...
1 มิ.ย. 09:41:07 กระติกน้ำเซิร์ฟเวอร์ nginx [66304]: nginx: [ฉุกเฉิน] คำสั่งที่ไม่รู้จัก "/Users/charleserrington/VScode/Flask_Blog/flaskblog" ใน /etc/nginx/sites-enabled/flaskblog:6
1 มิ.ย. 09:41:07 กระติกน้ำเซิร์ฟเวอร์ nginx [66304]: nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf การทดสอบล้มเหลว
01 มิ.ย. 09:41:07 กระติกน้ำเซิร์ฟเวอร์ systemd [1]: nginx.service: ออกจากกระบวนการควบคุม, รหัส = ออก, สถานะ = 1 / ล้มเหลว
01 มิ.ย. 09:41:07 flask-server systemd[1]: nginx.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
Jun 01 09:41:07 flask-server systemd[1]: ไม่สามารถเริ่มเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ
sudo นาโน /var/log/nginx/error.log
ผลิต:
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () กับ [::]:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () กับ [::]:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () กับ [::]:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () กับ [::]:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: การผูก () กับ [::]:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 05:54:02 [ฉุกเฉิน] 61717#61717: ยังไม่สามารถผูก()
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:06:31 [ฉุกเฉิน] 62174#62174: ยังไม่สามารถผูกได้ ()
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:10:15 [ฉุกเฉิน] 62189#62189: ยังไม่สามารถผูก()
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:23:31 [ฉุกเฉิน] 62221#62221: ยังไม่สามารถผูก()
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
31/05/2022 06:33:20 [ฉุกเฉิน] 62280#62280: ยังไม่สามารถผูกได้ ()
2022/06/01 05:54:41 [ฉุกเฉิน] 65391#65391: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ข้อผิดพลาดที่ไม่รู้จัก)
ดูเหมือนว่าข้อผิดพลาดทั้งหมดจะไม่มีใครทราบ ดังนั้นฉันจึงไม่แน่ใจว่าควรไปที่ใดจากที่นี่
ฉันอ่านข้อความเกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์และสแต็กโอเวอร์โฟลว์จำนวนมาก และดูเหมือนว่ามันเกี่ยวข้องกับพอร์ต 80 ฉันรันคำสั่งหลายคำสั่งที่แนะนำ รวมถึง:
netstat -tnlp | grep -w 80
netstat -ano|grep 80|grep ฟัง
sudo netstat -lnp
sudo lsof -i :80
kill -9 65734 (ฉันไม่ได้รับอนุญาตให้เรียกใช้สิ่งนี้)
netstat -tulpn
grep -rnw /etc/nginx/ -e '80'
และหนึ่งในคำสั่งเหล่านี้ทำให้มันใช้งานได้และอนุญาตให้ฉันรีสตาร์ท nginx และเข้าถึงเว็บไซต์ได้ แต่ฉันไม่รู้ว่าอันไหนและตอนนี้มันพังอีกครั้ง แต่ครั้งล่าสุดดูเหมือนว่ามีบางอย่างที่พอร์ต 80 แต่ตอนนี้เมื่อฉันรัน ตรวจสอบว่าไม่มีอะไรที่พอร์ต 80 ดูเหมือนว่าฉันจะหลงทางมากกว่าเดิม
แก้ไข:
ดังที่ Nick Andriopoulos ชี้ว่าปัญหาน่าจะเกิดจาก
ตำแหน่ง / คงที่ {
นามแฝง /Users/myname/VScode/Flask_Blog/flaskblog/static;
}
ฉันเปลี่ยนสิ่งนี้เป็น
ตำแหน่ง / คงที่ {
รูท /Users/myname/VScode/Flask_Blog/flaskblog/;
}
เมื่อฉันทำสิ่งนี้แล้ว ฉันสามารถรีสตาร์ท nginx และตอนนี้ไซต์ก็ทำงาน แต่ตอนนี้ nginx ไม่พบไฟล์สแตติก
ฉันตรวจสอบบันทึกข้อผิดพลาดแล้วและเห็นข้อความประเภทนี้หลายบรรทัด:
2022/06/03 06:09:42 [ข้อผิดพลาด] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) ไคลเอ็นต์: 217.146.83.247 เซิร์ฟเวอร์: IP คำขอ: "GET /static/main.css HTTP/1.1" โฮสต์: "IP" ผู้อ้างอิง: "http://IP/"
2022/06/03 06:09:42 [ข้อผิดพลาด] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/271fcf0ffe2a92aa.jpg" ล้มเหลว (2: ไม่มีไฟล์ดังกล่าวหรือ ไดเรกทอรี), ไคลเอ็นต์: 217.146.83.247, เซิร์ฟเวอร์: IP, คำขอ: "GET /static/profile_pics/271fcf0ffe2a92aa.jpg HTTP/1.1", โฮสต์: "IP", ผู้อ้างอิง: "http://IP/"
2022/06/03 06:09:42 [ข้อผิดพลาด] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/default.jpg" ล้มเหลว (2: ไม่มีไฟล์ดังกล่าวหรือ ไดเรกทอรี), ไคลเอ็นต์: 217.146.83.247, เซิร์ฟเวอร์: IP, คำขอ: "GET /static/profile_pics/default.jpg HTTP/1.1", โฮสต์: "IP", ผู้อ้างอิง: "http://IP/"
2022/06/03 06:09:45 [ข้อผิดพลาด] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) ไคลเอ็นต์: 217.146.83.247 เซิร์ฟเวอร์: IP คำขอ: "GET /static/main.css HTTP/1.1" โฮสต์: "IP" ผู้อ้างอิง: "http://IP/home"
ดังนั้น nginx จึงไม่สามารถค้นหา/เข้าถึงเส้นทางที่ฉันตั้งไว้ได้
มันเป็นเส้นทางที่ถูกต้อง ถ้าฉัน "ไปที่โฟลเดอร์" บน Mac ของฉันและวางในไฟล์และโฟลเดอร์ทั้งหมดที่นั่น ขอบคุณสำหรับความช่วยเหลือใด ๆ