Score:3

การกำหนดค่า nginx สำหรับการย้อนกลับการรับส่งข้อมูล UDP พร็อกซี (แอป minecraft) - 90 ข้อความยาวเกินไป

ธง kr
seb

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

เวอร์ชัน nginx: 1.21.3 ระบบปฏิบัติการ: อูบุนตู 18.04

nginx.conf:

worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

ผู้ปฏิบัติงาน_rlimit_nofile 30000;

เหตุการณ์ {
    worker_connections 30000;
    เปิด multi_accept;
}

ลำธาร{
เซิร์ฟเวอร์ {
    ฟัง *:4800-4899 udp;
    proxy_pass 217.178.x.x:$server_port;
}
}

บันทึกข้อผิดพลาด:

2213#2213: *3 recv() ล้มเหลว (90: ข้อความยาวเกินไป) ขณะพร็อกซีและอ่านจากอัปสตรีม ไคลเอ็นต์ udp: 49.98.x.x เซิร์ฟเวอร์: 66.42.x.x:4801 อัปสตรีม: "217.178.x.x:4801", ไบต์ จาก/ถึงไคลเอ็นต์:1464/0, ไบต์จาก/ถึงอัปสตรีม:0/1464

49.98.x.x: IP ไคลเอนต์ 66.42.x.x: พร็อกซี IP 217.178.x.x: IP เซิร์ฟเวอร์ปลายทาง

ip เอาต์พุต

1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
       valid_lft ตลอดไป reserved_lft ตลอดไป
    inet6 ::1/128 ขอบเขตโฮสต์ 
       valid_lft ตลอดไป reserved_lft ตลอดไป

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ 56:00:03:95:cc:59 brd ff:ff:ff:ff:ff:ff
    inet 66.42.x.x/23 brd 66.42.x.255 ขอบเขตโกลบอลไดนามิก enp1s0
       valid_lft 57402วินาทีที่ต้องการ_lft 57402วินาที
    inet6 fe80::5400:3ff:fe95:[xxx]/64 ลิงค์ขอบเขต 
       valid_lft ตลอดไป reserved_lft ตลอดไป

มีความคิดอะไรผิด? ทุกคนสามารถเห็นปัญหาใด ๆ ในการกำหนดค่าหรือไม่

ขอบคุณ

Michael Hampton avatar
cz flag
ฉันไม่พบปัญหากับการกำหนดค่า nginx ของคุณ แต่อาจมีปัญหากับการกำหนดค่าเครือข่ายของเซิร์ฟเวอร์ โปรดโพสต์ผลลัพธ์ของ `ที่อยู่ IP' และสังเกตว่าอินเทอร์เฟซใดที่นำทางไปยังอินเทอร์เน็ต และอินเทอร์เฟซใด (ถ้ามี) ไปยังเครื่องที่ใช้งานแอปพลิเคชันแบ็คเอนด์ของคุณ ดู[ข้อมูลอ้างอิง](https://meta.serverfault.com/q/963/126632)เกี่ยวกับที่อยู่ IP ที่ทำให้สับสน (เช่น โดยทั่วไปคุณไม่ควรทำ)
seb avatar
kr flag
seb
ขอบคุณ ฉันได้เพิ่ม ip เอาต์พุตแล้ว ไม่มี IP ส่วนตัวบนพร็อกซี
Michael Hampton avatar
cz flag
น่าสนใจ. ดูเหมือนว่าคุณไม่ได้มีปัญหาเกี่ยวกับ MTU 1464 ไบต์น่าจะใช้ได้เว้นแต่ความรู้ของฉันจะมีช่องว่าง! อาจจะมี ฉันได้ตอบคำถามของคุณแล้วเนื่องจากเป็นคำถามที่ดีและน่าสนใจ และควรให้ความสนใจมากกว่านี้
Score:2
ธง fr

บางทีปัญหา "90: ข้อความยาวเกินไป" อาจเชื่อมโยงกับข้อผิดพลาด EMSGSIZE (หากข้อความยาวเกินกว่าจะส่งผ่านโปรโตคอลต้นแบบได้ ข้อผิดพลาด EMSGSIZE จะถูกส่งกลับ และข้อความจะไม่ถูกส่ง) ซึ่งในกรณีนี้คุณสามารถลองแก้ไขได้โดยการเพิ่มขนาดของบัฟเฟอร์การส่งซ็อกเก็ต พารามิเตอร์ต่อไปนี้มีค่ามาตรฐาน:

net.core.wmem_default = 212992
net.core.wmem_max = 212992

ค่าปัจจุบัน ââ บนเซิร์ฟเวอร์ของคุณสามารถตรวจสอบได้ด้วยคำสั่ง:

sysctl -a | grep "net.core.wmem"

สำหรับการทดสอบ โดยใช้คำสั่งต่อไปนี้ คุณสามารถตั้งค่า เช่น ค่าต่อไปนี้:

sysctl -w net.core.wmem_default = 9999999
sysctl -w net.core.wmem_max = 9999999
echo "net.core.wmem_default = 9999999
net.core.wmem_max = 9999999 "> /etc/sysctl.conf

ต่อไป ให้ตรวจสอบว่าใช้อย่างถูกต้อง (ตอนนี้ต้องเป็น 9999999):

sysctl -a | grep "net.core.wmem"

และพยายามทำให้เกิดปัญหาซ้ำ

seb avatar
kr flag
seb
ขอบคุณ. ค่าเป็นค่าเริ่มต้น ฉันเปลี่ยนเป็น 9999999 ตรวจสอบว่าใช้อย่างถูกต้อง รีสตาร์ท nginx แต่ปัญหายังคงเหมือนเดิม ข้อผิดพลาดเดียวกันในบันทึก

โพสต์คำตอบ

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