Score:0

รีบูตเซิร์ฟเวอร์ Ubuntu ไซต์ nginx ไม่สามารถเข้าถึงได้จากเบราว์เซอร์อีกต่อไป

ธง pk

ฉันรีบูทเซิร์ฟเวอร์ Ubuntu เมื่อเช้านี้เพราะฉันมีสิ่งที่ดูเหมือนจะเป็นข้อผิดพลาดหน่วยความจำต่ำ แต่ตอนนี้ ไซต์ของฉัน (ซึ่งก่อนหน้านี้ทำงานได้ดี) ไม่สามารถเข้าถึงได้จากเบราว์เซอร์อีกต่อไป

การตั้งค่า: ฉันใช้ไซต์ NuxtJS โดยใช้ pm2 เพื่อแปลงเป็น daemonize และ nginx เป็น reverse proxy ฉันมี git hook หลังการรับ เพื่อที่ฉันจะได้ส่งไปยัง repo git ระยะไกลของฉัน ซึ่งจากนั้นจะสร้างแอปใหม่และรีสตาร์ทอินสแตนซ์ pm2

ฉันสามารถเข้าถึงไซต์ของฉันได้จาก ภายในเซิร์ฟเวอร์ภายในหน้าต่างเทอร์มินัล Lynx, wget และ cURL ทำงานได้ทั้งหมด และแม้กระทั่งทำตามการเปลี่ยนเส้นทาง 301 ไปยัง HTTPS และมันกำลังทำงานเมื่อฉันขอโดเมนเอง ไม่ใช่แค่ localhost:3000 ที่ได้รับพร็อกซีย้อนกลับ เช่นเดียวกับใน ขด https://my-domain.org ทำงาน ถ้าฉันพยายาม curl/lynx/etc จากหน้าต่างเทอร์มินัลอื่นๆ มันจะรอจนกว่าจะหมดเวลา เช่นเดียวกับเบราว์เซอร์ â รอจนกว่าจะหมดเวลา

นี่คือสิ่งที่ฉันได้ลอง / ดู:

  • ฉันใช้ UFW ดังนั้นฉันจึงตรวจสอบว่าไฟร์วอลล์เป็นปัญหาหรือไม่ แต่ 80, 443 และ 8080 ถูกตั้งค่าเป็น ALLOW ทั้งหมด
  • ฉันลองดูว่าบางที nginx ก็ไม่ฟังฉันเลยลอง sudo lsof -i -P -n | ฟัง. นี่คือผลลัพธ์ของสิ่งนั้น:
nginx 2896 รูท 6u IPv4 668673557 0t0 TCP *:443 (ฟัง)
nginx 2896 รูท 7u IPv4 668673558 0t0 TCP *:80 (ฟัง)
nginx 2897 www-data 6u IPv4 668673557 0t0 TCP *:443 (ฟัง)
nginx 2897 www-data 7u IPv4 668673558 0t0 TCP *:80 (ฟัง)
nginx 2898 www-data 6u IPv4 668673557 0t0 TCP *:443 (ฟัง)
nginx 2898 www-data 7u IPv4 668673558 0t0 TCP *:80 (ฟัง)
  • ฉันลองตรวจสอบ access.log ของ nginx คำขอ curl/wget/Lynx ทั้งหมดของฉันแสดงขึ้นตามปกติ แต่ไม่มีคำขอใดของเบราว์เซอร์ปรากฏขึ้น ฉันยังได้ดูที่ error.log และได้รับสิ่งนี้:
31/07/2021 11:51:52 [ฉุกเฉิน] 885#885: การผูก () กับ 0.0.0.0:443 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
31/07/2021 11:51:52 [ฉุกเฉิน] 885#885: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
31/07/2021 11:51:52 [ฉุกเฉิน] 885#885: การผูก () กับ 0.0.0.0:443 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
31/07/2021 11:51:52 [ฉุกเฉิน] 885#885: การผูก () ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
31/07/2021 11:51:52 [ฉุกเฉิน] 885#885: ยังไม่สามารถผูก()

จนถึงตอนนี้ฉันยังไม่พบวิธีแก้ปัญหาใด ๆ ฉันแค่งุนงง เพราะอะไรก็ตามที่เปลี่ยนไป มันก็เปลี่ยนเนื่องจากการรีบูต ความคิดใด ๆ ที่ชื่นชมมาก

แก้ไขเพื่อเพิ่มผลลัพธ์บางส่วน:

sudo systemctl สถานะ nginx:

â nginx.service - เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ
   โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/nginx.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
   ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่วันเสาร์ 2021-07-31 15:05:53 EDT; 27 นาทีที่แล้ว
  กระบวนการ: 6834 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status
  กระบวนการ: 6840 ExecStart=/usr/sbin/nginx -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
  กระบวนการ: 6837 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
 PID หลัก: 6841 (nginx)
   CGroup: /system.slice/nginx.service
           ââ6841 nginx: กระบวนการหลัก /usr/sbin/nginx -g daemon เปิด; master_process เปิดอยู่
           ââ6842 nginx: กระบวนการของผู้ปฏิบัติงาน                           
           ââ6843 nginx: กระบวนการของผู้ปฏิบัติงาน                           

31 ก.ค. 15:05:53 น. parrot systemd[1]: การเริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ...
31 ก.ค. 15:05:53 น. parrot systemd[1]: เริ่มทำงาน เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ

ผลลัพธ์ของ sudo nginx -T ยาวดังนั้น ฉันทำให้มันเป็นสาระสำคัญ.

pk flag
@MichaelHampton เอาล่ะ â ฉันทำให้มันเป็นสาระสำคัญ ลิงก์อยู่ด้านบน แต่ [นี่เป็นข้อมูลอ้างอิง](https://gist.github.com/thely/32ae2f5d6c284277874204500ec54026)
Michael Hampton avatar
cz flag
หืม การกำหนดค่า nginx ดูโอเค (ยกเว้นว่าคุณสร้างความสับสนโดยไม่จำเป็นและทำให้ชื่อโดเมนสับสนซึ่งอาจไม่เป็นประโยชน์) ฉันกังวลว่า PID จาก systemd ที่เริ่มต้น nginx ไม่ตรงกับ PID ที่คุณเห็นจาก `ps` คุณได้ทำอย่างอื่นในระหว่างเหตุการณ์เหล่านี้หรือไม่?
pk flag
@MichaelHampton สิ่งเดียวที่ฉันลบออกคือ ssl_ciphers (ด้วยเหตุผลด้านความปลอดภัยที่อาจเกิดขึ้น แม้ว่าฉันจะยังใหม่ในเรื่องนี้ก็ตาม) ปัจจุบัน main-site.org เป็นเว็บไซต์เดียวที่ฉันมีและใช้งานบน pm2 เนื่องจากเป็นเว็บไซต์เดียวจากสี่เว็บไซต์ที่ฉันสนใจ แต่ฉันทิ้งส่วนที่เหลือไว้เพื่อความสมบูรณ์ ฉันตรวจสอบ `ps -e` และพบว่า nginx ใช้ 6841, 6842 และ 6843 เช่นเดียวกับในสถานะ systemctl
Michael Hampton avatar
cz flag
เอ๊ะ? การเข้ารหัส ssl ของคุณเป็นข้อมูลสาธารณะ ทุกการเชื่อมต่อ https ไปยังเว็บไซต์ของคุณจะถูกส่งไป อย่างไรก็ตาม มีบางอย่างไม่ตรงกันอย่างชัดเจน ฉันจะรีสตาร์ท nginx อีกครั้ง
pk flag
ดีไม่ดีของฉันแล้ว ฉันลบออกจากส่วนสำคัญที่ฉันสร้างเท่านั้น ไม่ใช่จากไฟล์ .conf จริง
pk flag
ฉันได้ลองรีสตาร์ท nginx หลายครั้ง และตอนนี้เพิ่งตัดสินใจลองรีบูตเซิร์ฟเวอร์อีกครั้งเพื่อดูว่าจะแก้ไขได้หรือไม่ ยังคงเป็นสถานการณ์เดียวกัน :/
Michael Hampton avatar
cz flag
ตรวจสอบบันทึกข้อผิดพลาด nginx อีกครั้งเพื่อดูว่ามีสิ่งอื่นปรากฏขึ้นหรือไม่
djdomi avatar
za flag
เป็นอย่างไรบ้างเกี่ยวกับ killall -9 nginx และรีสตาร์ทแอปพลิเคชันจาก systemctl สำหรับการทดสอบ
pk flag
มันคือ `ufw` â ดูด้านล่าง ฉันไม่รู้ว่าทำไมมันถึงเป็น `ufw` แต่ฉันเดาว่ามันใช่
tg flag
คุณได้ลองปิดการใช้งาน `ufw` แล้วดูว่าเกิดอะไรขึ้น? คุณสามารถเข้าถึงเว็บไซต์ของคุณเมื่อปิดใช้งานไฟร์วอลล์ได้หรือไม่
pk flag
@MasEDI นั่นคือสิ่งที่ฉันทำจริง ๆ ! iptables-persistent บล็อกพอร์ตทั้งหมดเมื่อรีบูต และการปิดใช้งาน ufw คือสิ่งที่ทำให้ฉันได้คำตอบที่ถูกต้องในที่สุด ฉันทิ้งลิงก์ไปยังคำตอบ SO ที่เฉพาะเจาะจงมากขึ้นในคำตอบของฉัน
Score:0
ธง pk

มันโง่มากที่ฉันไม่รู้ว่าทำไมมันถึงเป็นปัญหา ดังนั้นความคิดใด ๆ เกี่ยวกับเรื่องนี้จึงได้รับการชื่นชม ของฉัน ยูเอฟดับบลิว การตั้งค่าเป็น/เป็นดังนี้:

สถานะ: ใช้งานอยู่

ถึงการดำเนินการจาก
-- ------ ----
22 อนุญาตได้ทุกที่                  
80/tcp อนุญาตได้ทุกที่                  
443/tcp อนุญาตได้ทุกที่                  
80 อนุญาตได้ทุกที่                  
8080 อนุญาตได้ทุกที่                  
22 (v6) อนุญาตทุกที่ (v6)             
80/tcp (v6) อนุญาตทุกที่ (v6)             
443/tcp (v6) อนุญาตได้ทุกที่ (v6)             
80 (v6) อนุญาตทุกที่ (v6)             
8080 (v6) อนุญาตได้ทุกที่ (v6) 

มี 80 ที่ซ้ำซ้อนอยู่ในนั้น แต่ฉันกำลังเพิ่มสิ่งพิเศษเพื่อดูว่ามันช่วยได้ไหม

มีคนแนะนำให้ฉันลองปิดการใช้งาน ufw เพื่อให้แน่ใจว่าไม่ใช่ปัญหา เห็นได้ชัดว่ามันเป็น ฉันปิดการใช้งาน ไซต์เริ่มทำงานทันที และเมื่อฉันเปิดใช้อีกครั้ง โดยคาดหวังว่าไซต์จะกลับมาเสียหายอีกครั้ง มัน... ก็ยังใช้งานได้ ดังนั้นบางอย่างเกี่ยวกับ ufw จึงจำเป็นต้องรีทริกเกอร์เมื่อฉันรีบูทเซิร์ฟเวอร์

แก้ไข: อาจเป็นเพราะ iptables-persistent ซึ่งติดตั้งอัตโนมัติบนเซิร์ฟเวอร์ส่วนใหญ่ที่ฉันเดา ดูเหมือนว่าจะเป็น ปัญหาเดียวกันกับคำตอบ SO นี้

โพสต์คำตอบ

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