คุณจะรีสตาร์ท Apache อย่างนุ่มนวลได้อย่างไรโดยไม่ต้องถอดการเชื่อมต่อ SSL


11

เราพยายามโหลด Apache อีกครั้งโดยใช้คำสั่งเช่น:

apache2ctl -k graceful

สามารถทำงานได้ตามที่คาดไว้สำหรับผู้ใช้ HTTP และการกำหนดค่า Apache จะถูกโหลดใหม่โดยไม่ส่งผลกระทบต่อผู้ใช้เว็บไซต์

อย่างไรก็ตามเราพบว่าผู้ใช้ที่เข้าถึงเซิร์ฟเวอร์ผ่าน HTTPS ถูกตัดการเชื่อมต่อในระหว่างการโหลดซ้ำอย่างสวยงาม

Apache สามารถทำการโหลดซ้ำอย่างงดงามได้อย่างไร

ในกรณีที่ช่วยได้เรากำลังใช้ HTTP 2 บน Apache 2.4.20


5
คุณสามารถ "รีโหลด" แทนที่จะรีสตาร์ท apache สมมติว่าคุณเรียกใช้สิ่งต่าง ๆ เช่นการแลกเปลี่ยนคีย์ Diffie-Hellman หลังจากรีสตาร์ทคีย์ที่ใช้ใน "เซสชัน" ก่อนหน้านี้จะไม่มีอยู่อีกต่อไปดังนั้นจึงมีการสร้างผึ้งขึ้นใหม่ ตัวเลือกที่แตกต่างกันคือการใส่ load balancer บางประเภทที่จะส่ง ssl ต่อหน้าเซิร์ฟเวอร์ apache ของคุณ
Harrys Kavan

ใช่เรากำลังโหลดใหม่ (สง่างาม) แทนที่จะรีสตาร์ท
โจนส์

5
การยกเลิก SSL ที่ HAProxy เป็นตัวเลือกสำหรับเราถ้าใครสามารถยืนยันได้ว่านี่เป็นวิธีแก้ปัญหาที่ใช้การได้?
โจนส์

2
ทุกวันนี้เป็นเรื่องธรรมดาที่จะมีพร็อกซีหรือโหลดบาลานเซอร์เพื่อยกเลิกการใช้งาน ssl ของผู้ใช้ปลายทาง จากนั้นเพื่อความปลอดภัยสูงสุดคุณจะต้องเพิ่มการเข้ารหัส SSL ในตัวระหว่าง apache และ proxy / loadbalancer
Harrys Kavan

5
ขณะนี้เราได้ยืนยันข้อผิดพลาดว่าเป็นปัญหากับโมดูล HTTP2 ใน Apache 2.4.10 โดยหวังว่าจะสามารถแก้ไขอัปสตรีมได้ เมื่อเราปิด HTTP2 เราสามารถโหลด Apache ใหม่ได้โดยไม่ต้องยกเลิกการเชื่อมต่อกับผู้ใช้ SSL
โจนส์

คำตอบ:


1

เพื่อให้แน่ใจว่าเซสชัน HTTP ที่ใช้ H2 ถูกทิ้งไว้ตามลำพัง (และไม่สิ้นสุด) เมื่อดำเนินการapachectl -k gracefulให้อัพเกรดซอฟต์แวร์ Apache เป็น 2.4.24 และแพ็คเกจ mod_h2 ของคุณเป็น 1.4.7


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