วิธีเริ่มใช้ httpd พร้อมการเปิดใช้งานซ็อกเก็ต (systemd)


14

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


ได้รับรางวัลข้างต้นและการแก้ไขหมดเวลาใน 5 นาที ผลในทางปฏิบัติอาจไม่เป็นประโยชน์ ลูกค้าจำเป็นต้องเชื่อมต่อกับคำสั่ง 'เริ่มต้น' ก่อนที่จะทำการร้องขอตามปกติ ลูกค้าไม่ทราบล่วงหน้าว่า httpd จะหมดหรือไม่ดังนั้นจึงจำเป็นต้องส่งคำสั่งเริ่มต้นก่อนการร้องขอปกติใด ๆ ความล่าช้าจะสูง ในชีวิตจริงแมงมุมและบอทของโลกอาจทำให้อาปาเช่หายไปตลอดกาล คำถามอาจถูกสร้างใหม่เพื่อให้คำตอบเช่น 'ใช้เซิร์ฟเวอร์ http น้ำหนักเบาเช่น lighthttpd และปล่อยให้อยู่ตลอดเวลา'
rleir

คำตอบ:


2

นี้เป็นไปได้กับ Apache 2.5 กับmod_systemd

สำหรับ Apache รุ่นเก่าคุณสามารถใช้systemd-socket-proxyd (8)แต่สิ่งนี้จะไม่หยุดบริการ Apache โดยอัตโนมัติหลังจากหมดเวลา


นี้จะดำเนินการจริงในหลักเซิร์ฟเวอร์ไม่ได้อยู่ในmod_systemd (ดังนั้นการสร้าง mod_systemd สำหรับ Apache 2.4 จะไม่ทำให้คุณได้รับการเปิดใช้งานซ็อกเก็ต)
Julian

0

ไฟล์:

httpd.socket

เนื้อหา:

[Socket]
ListenStream=80
ListenStream=0.0.0.0:80
#BindIPv6Only=ipv6-only
After=network.target
Requires=network.target

[Install]
WantedBy=sockets.target

ตรวจสอบให้แน่ใจว่าบริการ apache นั้นเรียกอีกอย่างว่า httpd


สิ่งนี้ใช้ไม่ได้เนื่องจากพอร์ตไม่ได้ถูกส่งต่อไปยัง httpd.service จาก httpd.socket
Edward Torvalds
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.