0
ฉันมีปัญหาที่ฉันไม่พบวิธีแก้ไขที่ใดก็ได้
ปัญหาคือเราได้ปรับใช้พร็อกซีเซิร์ฟเวอร์หน้าบริการเกมของเรา และที่นี่เราใช้ haproxy สำหรับทราฟฟิก tcp และ nginx สำหรับทราฟฟิก udp
ทุกอย่างทำงานได้ดี หมายความว่าผู้เล่นสามารถเชื่อมต่อและเล่นได้ แต่โดยการสุ่ม ผู้เล่นของเราจะหลุดจากเซิร์ฟเวอร์ด้วยเหตุผล: หมดเวลา
และบันทึกข้อผิดพลาด nginx ให้ข้อผิดพลาดประเภทนี้:
11/11/2021 07:14:14 [alert] 42692#42692: *183 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอนต์ ไคลเอ็นต์ udp: xx.xxx.xxx.xx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:4992068/6665500, ไบต์จาก/ถึงอัปสตรีม:6666800/4992068
10/11/2021 07:14:14 [alert] 42692#42692: *179 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอ็นต์ ไคลเอ็นต์ udp: xx.xxx.xxx.xxx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:5912472/8583792, ไบต์จาก/ถึงอัปสตรีม:8585092/5912472
10/11/2021 07:14:14 [alert] 42692#42692: *205 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอ็นต์ ไคลเอ็นต์ udp: xx.xx.xx.xxx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:958222/3056834, ไบต์จาก/ถึงอัปสตรีม:3058134/958222
10/11/2021 07:14:14 [การแจ้งเตือน] 42692#42692: *207 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอ็นต์ ไคลเอนต์ udp: xx.xxx.xxx.xx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:692866/3106114, ไบต์จาก/ถึงอัปสตรีม:3107414/692866
10/11/2021 17:01:59 [การแจ้งเตือน] 42692#42692: *1103 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอ็นต์ ไคลเอนต์ udp: xx.xxx.xxx.xx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:44160/1230780, ไบต์จาก/ถึงอัปสตรีม:1232080/44160
10/11/2021 17:01:59 [การแจ้งเตือน] 42692#42692: *1111 การเชื่อมต่อที่ใช้ร่วมกันไม่ว่างขณะพร็อกซีและส่งไปยังไคลเอ็นต์ ไคลเอ็นต์ udp: xx.xxx.xxx.xxx เซิร์ฟเวอร์: x.x.x.x:xxxxx อัปสตรีม: " xx.xx.xxx.xx:xxxxx", ไบต์จาก/ถึงไคลเอ็นต์:104003/2480683, ไบต์จาก/ถึงอัปสตรีม:2480693/104003
การกำหนดค่า haproxy ที่เราใช้อยู่ในปัจจุบัน:
ทั่วโลก
บันทึก /dev/log local0.log
บันทึก /dev/log local1 ประกาศ
chroot /var/lib/haproxy
ซ็อกเก็ตสถิติ /run/haproxy/admin.sock โหมด 660 ระดับผู้ดูแลระบบ expose-fd ผู้ฟัง
หมดเวลาสถิติ 30 วินาที
ผู้ใช้แฮพร็อกซี
กลุ่ม haproxy
ภูต
ค่าเริ่มต้น
โหมด tcp
หมดเวลาเชื่อมต่อ 30000ms
ไคลเอนต์หมดเวลา 30000ms
หมดเวลาเซิร์ฟเวอร์ 30000ms
พร็อกซีอินส่วนหน้า
โหมด tcp
ผูก *:45888
default_backend พร็อกซีออก
พร็อกซีออกแบ็กเอนด์
โหมด tcp
เซิร์ฟเวอร์ s1 main_server_ip:45888
การกำหนดค่า nginx ที่เราใช้อยู่ในปัจจุบัน:
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;
เหตุการณ์ {
worker_connections 50,000;
# multi_accept บน;
}
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
ลำธาร {
แบ็กเอนด์ต้นน้ำ{
เซิร์ฟเวอร์ main_server_ip:45888;
}
เซิร์ฟเวอร์ {
ฟัง 45888 udp reuseport;
แบ็กเอนด์ proxy_pass;
}
}
ขอบคุณสำหรับความช่วยเหลือ!