นี่คือสถานการณ์ที่ฉันพบ:
- เซิร์ฟเวอร์จัดการโดย laravel forge
- มันให้บริการหลังพร็อกซีย้อนกลับของ cloudflare
- Nginx เปิดใช้งานแล้ว รับฟังทั้งพอร์ต 80 และ 443 (ยืนยันแล้ว)
ตอนนี้ฉันต้องกำหนดค่าโหลดบาลานเซอร์แบบกำหนดเองสำหรับเซิร์ฟเวอร์นี้ และมีสิ่งแปลกประหลาดเกิดขึ้นเมื่อฉันพยายามทำ ขด
url จากภายนอก คำขอสำเร็จ บันทึกการเข้าถึงถูกต่อท้ายในบันทึก nginx แต่เมื่อฉันพยายามเข้าถึงจากเครื่องโหลดบาลานซ์ผ่าน ขด -- แก้ไข
การเชื่อมต่อถูกปิดก่อนที่จะมีอะไรเกิดขึ้น (ไม่มีส่วนหัว ไม่มีสถานะ โดยพื้นฐานแล้วไม่มีการตอบกลับเลย)
อันดับแรก ฉันคิดว่าเป็นปัญหาเกี่ยวกับการกำหนดค่าไฟร์วอลล์ ดังนั้นฉันจึง จุ๊ๆ
ลงในแอ็พพลิเคชันเซิร์ฟเวอร์ แล้วลอง ขด -- แก้ไข xxxx:80:127.0.0.1
ซึ่งเข้าถึงได้ผ่านการเชื่อมต่อแบบย้อนกลับ แต่สิ่งเดียวกันก็เกิดขึ้น
จากนั้นฉันพยายามทำสิ่งเดียวกันอีกครั้งด้วย https แต่การเชื่อมต่อปิดลงเมื่อไคลเอนต์พยายามเริ่มต้นการจับมือ TLS
สิ่งทั้งหมดดูเหมือนว่าการวนกลับถูกบล็อกซึ่งฟังดูเป็นไปไม่ได้สำหรับฉัน ดังนั้นมีใครทราบบ้างว่าปัญหานี้เกิดขึ้นได้อย่างไร?
p/s: ฉันตรวจสอบเกี่ยวกับไฟร์วอลล์แล้ว ufw ถูกเปิดใช้งาน แต่ฉันได้รับผลลัพธ์เดียวกันหลังจากปิดใช้งาน ufw
ในภาพนี้ ฉันควรได้ 404 แทนที่จะไม่มีผลลัพธ์เลย
forge@dev-server1:~$ curl -v localhost
* ลอง 127.0.0.1:80...
* ตั้งค่า TCP_NODELAY
* เชื่อมต่อกับ localhost (127.0.0.1) พอร์ต 80 (#0)
> เก็ท / HTTP/1.1
> โฮสต์: localhost
> User-Agent: curl/7.68.0
> ยอมรับ: */*
>
* การตอบกลับที่ว่างเปล่าจากเซิร์ฟเวอร์
* การเชื่อมต่อ #0 ไปยังโฮสต์ localhost ยังคงอยู่
curl: (52) การตอบกลับที่ว่างเปล่าจากเซิร์ฟเวอร์
forge@dev-server1:~$
อัปเดต
แนะนำโดยความคิดเห็นฉันเรียกใช้ nginx -T
แล้ว นี่คือผลลัพธ์
p/s: นี่คือการทดสอบสำหรับ https ที่ฉันพูดถึงก่อนหน้านี้
forge@dev-server1:~$ curl --resolve member.domain.hide:443:127.0.0.1 https://member.domain.hide -v
* เพิ่ม member.domain.hide:443:127.0.0.1 ไปยัง DNS cache
* พบชื่อโฮสต์ member.domain.hide ในแคช DNS
* ลอง 127.0.0.1:443...
* ตั้งค่า TCP_NODELAY
* เชื่อมต่อกับ member.domain.hide (127.0.0.1) พอร์ต 443 (#0)
* ALPN ให้บริการ h2
* ALPN ให้บริการ http/1.1
* ตั้งค่าตำแหน่งการตรวจสอบใบรับรองสำเร็จแล้ว:
* ไฟล์ CA: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (ออก), การจับมือ TLS, สวัสดีลูกค้า (1):
* OpenSSL SSL_connect: การเชื่อมต่อถูกรีเซ็ตโดยเพียร์ในการเชื่อมต่อกับ member.domain.hide:443
* ปิดการเชื่อมต่อ 0
curl: (35) OpenSSL SSL_connect: การเชื่อมต่อถูกรีเซ็ตโดยเพียร์ในการเชื่อมต่อกับ member.domain.hide:443
forge@dev-server1:~$