วิธีการแก้ไขปัญหา Error 421 Misdirected Request สำหรับเว็บไซต์ที่ Hosted บน Plesk

ปัญหาที่พบ:

  • เว็บไซต์ทั้งหมดของคุณแสดงข้อผิดพลาด: 421 Misdirected Request
				
					421 Misdirected Request
				
			
  • คุณจะพบข้อความแสดงข้อผิดพลาดนี้ในบันทึก (Log) ของโดเมน (Plesk > Domains > example.com > Logs):
				
					AH02032: Hostname default-203_0_113_2 (default host as no SNI was provided) and hostname www.example.com provided via HTTP have no compatible SSL setup

				
			

สาเหตุ:

Apache เวอร์ชันล่าสุดมีการอัปเดตแก้ไขช่องโหว่ด้านความปลอดภัย (CVEs) ที่ส่งผลต่อการทำงานร่วมกันระหว่าง Apache และ Nginx การเปลี่ยนแปลงใหม่เหล่านี้ทำให้ Apache ไม่สามารถประมวลผลคำขอที่มาจาก Nginx ได้หากไม่มีการระบุ “ชื่อเซิร์ฟเวอร์” (server name) โดยปกติแล้ว Nginx จะไม่ได้ส่งชื่อเซิร์ฟเวอร์ผ่าน SNI (Server Name Indication) เมื่อมีการสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ HTTPS ที่ Nginx ทำหน้าที่เป็นพร็อกซีให้

ขณะนี้ทีมงาน Plesk กำลังเร่งพัฒนาการแก้ไขเฉพาะสำหรับ Plesk Obsidian เวอร์ชัน 18.0.70 และ 18.0.71

วิธีการแก้ไข:

คุณสามารถแก้ไขปัญหานี้ได้โดยการเพิ่มคำสั่ง (proxy_ssl_server_name, proxy_ssl_name, และ proxy_ssl_session_reuse) ในการตั้งค่า Nginx เพื่อให้ Nginx ส่งชื่อเซิร์ฟเวอร์ไปยัง Apache ผ่านส่วนขยาย TLS Server Name Indication (SNI) ได้อย่างถูกต้อง:

  1. เชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน SSH
  2. รันสคริปต์นี้ (โดยไม่ต้องแก้ไขใดๆ):
				
					echo -e "proxy_ssl_server_name on;\nproxy_ssl_name \$host;\nproxy_ssl_session_reuse off;" > /etc/nginx/conf.d/fixssl.conf && systemctl restart nginx
				
			
Facebook
Twitter
Telegram