ฉันอ่านบทความเกี่ยวกับการจับคู่ nginx และพวกเขากล่าวว่าควรจับคู่บล็อกตำแหน่งที่ยาวกว่าก่อน
อย่างไรก็ตาม เมื่อฉันพยายามตั้งค่าพร็อกซีสำหรับตำแหน่งที่ตั้งสองแห่ง ตำแหน่งแรกแสดงการเข้าชมทั้งหมด และตำแหน่งที่สองไม่ได้รับอะไรเลย
นี่คือการกำหนดค่าเซิร์ฟเวอร์ของฉัน
เซิร์ฟเวอร์ {
ฟัง 80;
server_name IP;
#return 301 https://$host$request_uri;
# nginx/sites-available/fdp.conf
ตำแหน่ง /lls/ {
proxy_set_header โฮสต์ $host;
proxy_set_header X-Forwarded-Proto $scheme;
เปิด proxy_pass_request_headers;
proxy_pass http://IP:8080;
}
ที่ตั้ง / {
proxy_set_header โฮสต์ $host;
proxy_set_header X-Forwarded-Proto $scheme;
เปิด proxy_pass_request_headers;
proxy_pass http://IP:8000/;
}
}
เหตุใด nginx จึงไม่เปลี่ยนเส้นทางการรับส่งข้อมูลไปยังพร็อกซี /lls ฉันพยายามใช้ตำแหน่ง regex ~ /lls แต่ก็ไม่โชคดีเช่นกัน แอปพลิเคชันทั้งสองทำงานเมื่อฉันไปที่พอร์ตบน IP
ฉันมีแอปพลิเคชันที่ทำงานภายใต้พอร์ต 8000 เป้าหมายของฉันคือเพิ่มแอปพลิเคชันที่สองที่ทำงานภายใต้ /lls สำหรับสิ่งนี้ ฉันต้องการให้ทราฟฟิกทั้งหมดไปที่พอร์ต 8000 เว้นแต่ /lls จะอยู่ใน url จากนั้นฉันต้องการให้ทราฟฟิกทั้งหมดไปที่แอปพลิเคชันที่ 2 บนพอร์ต 8080 ในสถานการณ์ปัจจุบัน ทราฟฟิกสำหรับพอร์ต 8080 จะถูกเลือกโดยพอร์ต 8000
ผลลัพธ์ของ curl -v IP/lls:
* กำลังลอง IP:80...
* ตั้งค่า TCP_NODELAY
* เชื่อมต่อด้วยไอพี (IP) พอร์ต 80 (#0)
> รับ /lls HTTP/1.1
> โฮสต์: IP
> User-Agent: curl/7.68.0
> ยอมรับ: */*
>
* ทำเครื่องหมายที่บันเดิลว่าไม่รองรับการใช้งานหลายอย่าง
< HTTP/1.1 400
< เซิร์ฟเวอร์: nginx/1.18.0 (Ubuntu)
< วันที่: วันเสาร์ที่ 09 ต.ค. 2564 08:41:47 น
< ประเภทเนื้อหา: ข้อความ/เต่า
< การเข้ารหัสการถ่ายโอน: chunked
< การเชื่อมต่อ: รักษาชีวิต
< การควบคุมการเข้าถึง-อนุญาต-ต้นทาง: *
< การควบคุมการเข้าถึง-อนุญาตส่วนหัว: ต้นทาง, การอนุญาต, ยอมรับ, ประเภทเนื้อหา
< การควบคุมการเข้าถึง-เปิดเผยส่วนหัว: ตำแหน่ง, ลิงก์
< อนุญาต: GET, POST, PUT, PATCH, DELETE
< การเข้าถึง-ควบคุม-อนุญาต-วิธีการ: GET,POST,PUT,PATCH,DELETE
< X-Content-Type-Options: ไร้สาระ
< X-XSS-การป้องกัน: 1; โหมด = บล็อก
< การควบคุมแคช: ไม่มีแคช, ไม่มีที่เก็บ, อายุสูงสุด=0, ต้องตรวจสอบความถูกต้องอีกครั้ง
< Pragma: ไม่มีแคช
< หมดอายุ: 0
< ตัวเลือก X-Frame: ปฏิเสธ
<
* การเชื่อมต่อ #0 กับโฮสต์ IP ยังคงอยู่
ผลลัพธ์ของ lsof -Pi :8080
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
นักเทียบท่า-pr 2698710 รูท 4u IPv4 8351515 0t0 TCP *:8080 (ฟัง)
นักเทียบท่า-pr 2698721 รูท 4u IPv6 8351519 0t0 TCP *:8080 (ฟัง)
เอาต์พุตของ lsof -Pi :8000
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
นักเทียบท่า-pr 2615262 รูท 4u IPv4 7781060 0t0 TCP *:8000 (ฟัง)
นักเทียบท่า-pr 2615267 รูท 4u IPv6 7781066 0t0 TCP *:8000 (ฟัง)