Score:0

เป็นระยะ "ที่อยู่ที่ใช้งานแล้ว: AH00072: make_sock: ไม่สามารถผูกกับที่อยู่" บนพอร์ต 80

ธง ng

เรากำลังประสบปัญหา "ใช้ที่อยู่นี้แล้ว: AH00072: make_sock: ไม่สามารถผูกกับที่อยู่ได้" บนพอร์ต 80 ที่ล้มเหลวบนเซิร์ฟเวอร์ของเรา ฉันได้ดูคำตอบอื่น ๆ แล้วและพวกเขาส่วนใหญ่มีพื้นฐานมาจากความล้มเหลวที่สม่ำเสมอและ LISTEN ถูกกำหนดสองครั้งซึ่งไม่ใช่ปัญหาของเรา

ปัญหาของเราเกิดขึ้นไม่นานหลังจากบูตอินสแตนซ์ที่เรา "sudo service httpd restart" บริการเพื่อโหลดการกำหนดค่าใหม่ที่เราวางลงโดยขึ้นอยู่กับสภาพแวดล้อม

ฉันสามารถจับประเด็นได้และเห็นว่าเป็นจริง httpd ที่ผูกพัน. ปัญหาดูเหมือนว่า Apache/httpd จะหยุดทำงานและไม่สามารถรีสตาร์ทได้ จากนั้นการรีสตาร์ทจะไม่รอ

เรากำลังใช้ Apache 2.4 บน Amazon Linux 1

ป้อนคำอธิบายรูปภาพที่นี่

Michael Hampton avatar
cz flag
อเมซอน ลินุกซ์ 1? นั่นคือ _โบราณ_ มันยังรองรับอยู่ไหม? ฉันคิดว่ามันลดลงเมื่อหลายปีก่อน ฉันไม่แน่ใจว่าคุณจะไปได้ไกลแค่ไหน
ng flag
ใช่ นี่เป็นเรื่องจริง เมื่อเร็ว ๆ นี้ไม่ได้รับการสนับสนุน เรากำลังดำเนินการย้ายข้อมูลไปยังคอนเทนเนอร์บน K8 แต่ยังเหลือเวลาอีกไม่กี่เดือน และจนกว่าจะถึงเวลานั้น ฉันยังคงมองหาวิธีแก้ปัญหานี้ มันส่งผลกระทบต่อซีดีสภาพแวดล้อมที่ต่ำกว่าของเราในขณะนี้ แต่ทำให้เกิดความล้มเหลวแบบสุ่มสำหรับเราในตอนนี้
Michael Hampton avatar
cz flag
ฉันขอแนะนำให้คุณปรับใช้การกำหนดค่าของคุณ _before_ เริ่มต้น httpd
ng flag
ฉันคิดว่าเรามีข้อ จำกัด ในระบบการปรับใช้ของเรา (อิงตาม Ansible) แต่ฉันจะลองดูและดูว่าฉันสามารถปรับโครงสร้างใหม่ได้หรือไม่ ดูเหมือนว่ามันจะเป็นทางออกที่มั่นคงและจะแก้ปัญหานี้ ขอบคุณ Michael สำหรับคำแนะนำนั้น!
ng flag
ที่เกี่ยวข้อง: https://askubuntu.com/questions/500977/ah00015-unable-to-open-logs-action-start-failed-in-ubuntu-14-04
Score:1
ธง cn

มีสองเหตุผลหลักในการได้รับ ที่อยู่ที่ใช้งานแล้ว ข้อผิดพลาด:

  1. เซิร์ฟเวอร์อื่นใช้ IP:port นั้น

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

  2. เซิร์ฟเวอร์เดียวกันเริ่มใหม่เร็วเกินไป

    ตามค่าเริ่มต้น เคอร์เนลจะเก็บ IP:port combo ไว้สองสามวินาที (อาจถึงหนึ่งนาที) ก่อนที่จะอนุญาตให้บริการใช้สิ่งเหล่านี้อีกครั้ง เพื่อให้แน่ใจว่าลูกค้าทั้งหมดมีโอกาสที่จะได้รับสัญญาณปิดที่เหมาะสม นอกจากนี้ ด้วยเหตุผลด้านความปลอดภัย คุณสามารถลงเอยด้วยการรับแพ็กเก็ตที่คาดว่าจะส่งไปยังการเชื่อมต่อเก่า ที่อาจทำให้เกิดปัญหา

    ดูเหมือนว่าจะเป็นสถานการณ์ของคุณ แม้ว่าฉันคิดว่า Apache จะใช้ไฟล์ SO_REUSEADR ธง. วิธีแก้ไขคือดูที่การดำเนินการรีสตาร์ทและเพิ่มโหมดสลีประหว่างคำสั่งปิดและเริ่ม มันค่อนข้างง่ายถ้าคุณใช้สคริปต์เริ่มต้น:

     [...สนิป...]
         ;;
     เริ่มต้นใหม่)
         log_daemon_msg "กำลังเริ่มต้น $DESC" "$NAME" ใหม่
         do_stop หยุด
         กรณี "$?" ใน
                 0|1)
                         สลีป 12 # <<-- สลีปก่อนรีสตาร์ท
                         do_start
                         กรณี "$?" ใน
     [...สนิป...]
    

    ด้วย systemd คุณจะต้องแก้ไขไฟล์ .service และเพิ่มโหมดสลีปก่อนที่คุณจะเริ่มเซิร์ฟเวอร์ apache2

     ExecStart=sleep 20 && /usr/sbin/apache2
    

ลำดับการเริ่มต้นของคุณอาจเป็นสาเหตุของปัญหา (หากคุณต้องเริ่มต้น ให้เปลี่ยนบางอย่างแล้วรีสตาร์ท apache2 ขณะบู๊ต กล่าวคือ ความสามารถในการรีสตาร์ท apache2 เมื่อใดก็ได้อาจเป็นเรื่องสำคัญ)

โพสต์คำตอบ

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